débutant du framework de lithium: points clés
- Lithium est un cadre PHP flexible adapté à PHP 5.3 et supérieur, qui utilise une architecture de contr?le-contr?leur de modèle (MVC) pour le développement d'applications Web.
- Le contr?leur gère les demandes acheminées par le système de routage des applications. Une vue est une couche de présentation qui sépare la logique métier de la présentation et permet une thématique facile du contenu affiché dans le navigateur. Le modèle définit et traite le contenu de la base de données, facilitant les opérations crud (créer, lire, mettre à jour, supprimer).
- Lithium prend en charge une variété de bases de données, notamment MySQL, MongoDB et CouchDB. Le framework possède également un puissant système de routage qui permet la création d'URL concises et adaptées aux moteurs.
- La convention du lithium facilite le démarrage. Il fournit des méthodes CRUD intégrées, permet un routage personnalisé, prend en charge plusieurs dispositions et rend même des éléments plus petits dans la vue. Ces fonctionnalités font du lithium un outil puissant pour le développement d'applications Web.
Le lithium est un cadre PHP simple et efficace adapté à PHP 5.3 et au-dessus. Il est con?u pour fournir un bon ensemble d'outils pour lancer votre application Web sans être trop restrictif.
Lithium utilise l'architecture Model-View-Controller (MVC), qui sera discutée dans cet article. Je vais vous montrer comment cela fonctionne et comment définir une logique commerciale et de représentation pour votre application à l'aide de ce cadre. Nous effectuerons les étapes suivantes:
Nous allons configurer un contr?leur pour acheminer les demandes d'URL. Ce contr?leur utilisera le modèle de données pour obtenir et traiter certaines informations à partir de la base de données. Ces informations seront ensuite affichées dans le navigateur à l'aide de la vue. Tout cela est un processus MVC standard, mais c'est un plaisir à exécuter au lithium.
Je suppose que vous avez le framework configuré sur le serveur, au moins vous pouvez voir la page de lancement de l'application par défaut lorsque vous accédez à l'URL. De plus, vous avez besoin d'une base de données avec quelques informations. Je vais utiliser MySQL, mais Lithium prend en charge de nombreux autres systèmes de stockage comme MongoDB ou CouchDB.
Si vous voulez continuer à apprendre, j'ai mis en place un référentiel GIT et vous pouvez le cloner. La branche principale contient le cadre de lithium normal, tandis que la branche MVC contient le code de cet article. N'oubliez pas d'initialiser et de mettre à jour le sous-module de lithium. Pour vous connecter à votre base de données, copiez le fichier Connections_default.php situé dans le dossier App / Config / Bootstrap et renommez-le sur Connections.php. Ajoutez ensuite vos informations d'identification au fichier.
Commen?ons.
Données
Avant d'entrer un contenu MVC intéressant, ajoutons une table dans la base de données avec quelques informations. J'utiliserai les données de la page virtuelle, donc mon tableau (pages nommées) contiendra une colonne d'ID (int, automatique et clé primaire), une colonne de titre (VARCHAR 255), une colonne de contenu (texte) et une colonne créée ( Int). Dans ce tableau, j'ai deux lignes d'échantillons de données. Si vous souhaitez suivre les étapes exactement, voici les instructions de création de table:
CREATE TABLE `pages` ( `id` int(11) unsigned NOT NULL AUTO_INCREMENT, `title` varchar(255) DEFAULT NULL, `content` text, `created` int(11) DEFAULT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8;
Ce qui suit est ma ligne de données virtuelle:
INSERT INTO `pages` (`id`, `title`, `content`, `created`) VALUES (1, 'My awesome page title', 'Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.', 1397158745), (2, 'Some other page title', 'Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.', 1397158768);
Bien s?r, vous pouvez utiliser d'autres données.
C signifie Controller
Les contr?leurssont probablement la partie la plus importante de tout cadre MVC. Leur objectif est de traiter les demandes acheminées par le système de routage des applications.
Si vous regardez l'application / contr?leurs / dossier de l'application, vous constaterez que c'est là que nous devons placer le contr?leur. Créons un nouveau fichier appelé SiteController.php (chaque classe de contr?leur est dans son propre fichier) et collez la déclaration de classe suivante à démarrer:
<?php namespace app\controllers; class SiteController extends \lithium\action\Controller { }
Comme vous pouvez le voir, nous étendons la classe de contr?leur de base du lithium à notre propre classe appelée SiteController. Dans cette classe, vous pouvez créer des méthodes qui exécutent la logique requise lors de la demande d'une URL. Nous verrons comment cela s'applique réellement plus tard, mais d'abord, comprenons comment fonctionne le routage.
Par défaut, lors de la construction de l'URL, nous utilisons des paramètres qui mappent au nom de classe du contr?leur (dans ce site de cas), à la méthode et aux paramètres. Si le nom de la méthode n'est pas passé, le lithium supposera une méthode nommée index () seule. Donc, si vous naviguez vers http://example.com/site/, Lithium recherchera cette méthode et l'appellera. Supposons maintenant que nous ayons une méthode appelée View () qui prend un paramètre ($ id). L'URL qui appelle la méthode du contr?leur est http://example.com/site/view/1, où la vue est le nom de la méthode et 1 est le paramètre transmis à la fonction. Si la méthode obtient plus de paramètres, vous les séparez simplement avec des barres obliques (/) dans l'URL.
Cependant, comme je l'ai mentionné, c'est le comportement par défaut. Pour plus de contr?le, vous pouvez définir votre propre itinéraire dans le fichier /app/config/routes.php. Je n'entrerai pas dans les détails, mais vous pouvez trouver plus d'informations sur la page de documentation correspondante.
Allons maintenant de l'avant et créons une méthode page () qui sera responsable de l'affichage des pages individuelles de ma base de données virtuelle:
public function page() { // 模擬頁面信息。 $title = 'My awesome page title'; $content = 'My awesome page content. Yes indeed.'; $created = '10 April 2014'; // 準(zhǔn)備頁面信息以傳遞給視圖。 $data = array( 'title' => $title, 'content' => $content, 'created' => $created, ); // 將數(shù)據(jù)傳遞給視圖。 $this->set($data); }
ci-dessus, nous simulons les informations de la page de base de données et les stockons dans un tableau. Nous passons ensuite ce tableau à la méthode set () du contr?leur (dont nous avons hérité), puis l'envoyons à la vue. Alternativement, nous pouvons retourner le tableau de données $, au lieu d'utiliser la méthode set (). Mais dans les deux cas, les clés du tableau représentent des noms de variables, auxquels nous pouvons ensuite accéder à partir du fichier d'affichage. Voyons comment cela fonctionne.
(Le contenu suivant est similaire au texte d'origine, mais l'instruction a été ajustée et réécrite, en maintenant l'intention d'origine et en évitant les blocs de code en double)
V signifie View
La vueest la couche de présentation du cadre MVC. Ils sont utilisés pour séparer la logique métier d'une application de la représentation et permettre une thématique facile du contenu affiché dans le navigateur.
Créons une vue pour afficher les informations de notre page. Dans le dossier APP / Views /, vous devez créer un autre dossier nommé d'après la classe de contr?leur qui l'utilise (dans ce site de cas). Dans ce dossier, vous devez créer un fichier nommé d'après la méthode elle-même, avec l'extension .html.php jointe. Il s'agit des vues des noms de lithium de convention, ce qui nous permet de les connecter facilement au contr?leur.
Ainsi, pour notre exemple de page, le nouveau fichier sera situé dans l'application / vues / site / page.html.php.
Dans ce fichier, collez ce qui suit:
CREATE TABLE `pages` ( `id` int(11) unsigned NOT NULL AUTO_INCREMENT, `title` varchar(255) DEFAULT NULL, `content` text, `created` int(11) DEFAULT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8;
Comme vous l'avez peut-être deviné, voici quelques balises de base où nous imprimerons les variables nommées pour passer des clés de tableau du contr?leur. Lithium utilise cette syntaxe pour imprimer des variables, car elle les exécute également via sa fonction $ h (), qui est responsable du nettoyage de HTML. Mais cela ne s'applique qu'aux variables d'impression, et non aux propriétés de $ cet objet.
pour tester ce que nous avons fait jusqu'à présent, accédez à http://example.com/site/page et vous devriez voir une belle page affichant les informations de simulation. Vous remarquerez également que notre vue simple est rendue dans des dispositions plus complexes (la mise en page par défaut accompagnée du cadre).
Les dispositions de lithium sont utilisées pour envelopper le contenu en utilisant des balises couramment utilisées telles que les titres et les pieds de page. Ils sont situés dans le dossier APP / Disposets où ils rendent la vue en utilisant $ this- & gt; content (). Notre vue est rendue par défaut dans la disposition par défaut.html.php, mais vous pouvez spécifier une autre mise en page comme vous le souhaitez. Vous pouvez le faire à partir du contr?leur qui rend la vue, soit comme un attribut de classe appliqué à toutes les méthodes de ce contr?leur, soit dans la méthode elle-même, comme ainsi:
INSERT INTO `pages` (`id`, `title`, `content`, `created`) VALUES (1, 'My awesome page title', 'Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.', 1397158745), (2, 'Some other page title', 'Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.', 1397158768);
Nous nous en tiendrons à la mise en page par défaut car il a l'air bien pour nos objectifs de démo.
M signifie Model
Maintenant que la logique de demande et de représentation a été traitée, il est temps de remplacer les données de la page simulées par notre contenu de base de données virtuelle. Nous utiliserons des modèles pour abstraction et accéder facilement à ces informations.
Les classes de modèles sont une partie très importante du cadre MVC car elles définissent et traitent le contenu dans la base de données. Ils permettent également aux applications d'effectuer facilement des opérations CRUD (créer, lire, mettre à jour, supprimer) sur ces données. Voyons comment ils fonctionnent en lithium.
La première chose que vous devez faire est de créer un fichier de classe appelé pages.php dans le dossier APP / Modèles et coller ce qui suit:
<?php namespace app\controllers; class SiteController extends \lithium\action\Controller { }
Nous avons juste étendu la classe de modèle de base et utilisé toutes ses méthodes. Notre nom de classe de modèle doit correspondre à la table de base de données contenant les enregistrements pertinents. Donc, si le v?tre n'est pas des pages, assurez-vous de s'ajuster en conséquence, car le lithium obtiendra automatiquement cette dénomination pour simplifier notre travail.
Ensuite, nous devons inclure ce fichier dans notre fichier de classe de contr?leur, alors collez-le ci-dessous ci-dessous la déclaration d'espace de noms:
CREATE TABLE `pages` ( `id` int(11) unsigned NOT NULL AUTO_INCREMENT, `title` varchar(255) DEFAULT NULL, `content` text, `created` int(11) DEFAULT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8;
La prochaine consiste à supprimer le contenu simulé de la méthode Page () et à assurer que cette fonction transmet un paramètre $ id afin que nous sachions quelle page nous devons récupérer. Notre tache simple à gauche consiste à interroger l'enregistrement de la page et à passer les résultats à la vue. Par conséquent, la méthode Page () modifiée ressemblera à ceci:
INSERT INTO `pages` (`id`, `title`, `content`, `created`) VALUES (1, 'My awesome page title', 'Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.', 1397158745), (2, 'Some other page title', 'Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.', 1397158768);
Nous utilisons la méthode première () de la classe parent du modèle pour interroger en utilisant les conditions. Le résultat est un objet à partir de laquelle nous utilisons la méthode Data () pour récupérer les données d'enregistrement. Ces données prennent un tableau avec le nom de la colonne de table comme clé. Le reste est le même qu'auparavant, sauf que nous formons le champ créé à l'aide de la fonction PHP Date () parce que ce que nous obtenons de la base de données est l'horodatage Unix. C'est ?a.
Si nous naviguons vers http: example.com/site/page/1, nous devrions voir une page avec ID 1. Si nous passons le dernier paramètre URL à 2, la page doit charger le deuxième enregistrement. rangé.
Conclusion
Dans ce tutoriel, nous avons vu à quel point il est facile de comprendre et d'utiliser le cadre Lithium MVC. Nous avons appris à définir les contr?leurs, les vues et les modèles, et comment les utiliser ensemble pour créer un flux d'application soigné et séparé. Nous avons également vu à quel point l'accord de lithium était utile pour nous de commencer. Même si nous ne le réalisons pas, nous abstracons notre contenu de base de données et l'exposons pour un accès facile.
J'espère que vous avez appris quelque chose et que vous êtes curieux de approfondir d'autres fonctionnalités puissantes que le lithium propose. Quelles sont les méthodes CRUD intégrées? Comment les développer? Comment définir vos propres itinéraires personnalisés? Comment utiliser plusieurs dispositions pour rendre les éléments plus petits même en vue? Ce sont les fonctionnalités puissantes des offres de lithium pour nos applications Web et valent la peine d'être essayées.
Ai-je éveillé votre curiosité? Vous voulez en savoir plus sur cet excellent cadre?
(La partie FAQ est la même que le texte d'origine, aucune modification n'est requise)
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Outils d'IA chauds

Undress AI Tool
Images de déshabillage gratuites

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Clothoff.io
Dissolvant de vêtements AI

Video Face Swap
échangez les visages dans n'importe quelle vidéo sans effort grace à notre outil d'échange de visage AI entièrement gratuit?!

Article chaud

Outils chauds

Bloc-notes++7.3.1
éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds

ToseCurelyHandleAuthentication andAuthorizationInPhp, suivitheSesteps: 1.AlwayShashPasswordSwithPassword_Hash () etverifyusingPassword_verify (), usePreparedStatementStopReventsQLendiject, andstoreSerDatain $ _SessionAfterLogin.2

Pour gérer en toute sécurité les téléchargements de fichiers dans PHP, le noyau consiste à vérifier les types de fichiers, à renommer les fichiers et à restreindre les autorisations. 1. Utilisez finfo_file () pour vérifier le type de mime réel, et seuls des types spécifiques tels que l'image / jpeg sont autorisés; 2. Utilisez Uniqid () pour générer des noms de fichiers aléatoires et les stocker dans le répertoire racine non Web; 3. Limiter la taille du fichier via les formulaires PHP.ini et HTML et définir les autorisations de répertoire sur 0755; 4. Utilisez Clamav pour scanner les logiciels malveillants pour améliorer la sécurité. Ces étapes empêchent efficacement les vulnérabilités de sécurité et garantissent que le processus de téléchargement de fichiers est s?r et fiable.

En PHP, la principale différence entre == et == est la rigueur de la vérification des types. == La conversion de type sera effectuée avant la comparaison, par exemple, 5 == "5" Renvoie True, et === Demande que la valeur et le type soient les mêmes avant que True sera renvoyé, par exemple, 5 === "5" Renvoie False. Dans les scénarios d'utilisation, === est plus sécurisé et doit être utilisé en premier, et == n'est utilisé que lorsque la conversion de type est requise.

Les méthodes d'utilisation des opérations mathématiques de base en PHP sont les suivantes: 1. Les signes d'addition prennent en charge les entiers et les nombres à virgule flottante, et peuvent également être utilisés pour les variables. Les numéros de cha?ne seront automatiquement convertis mais non recommandés en dépendances; 2. Les signes de soustraction utilisent - les signes, les variables sont les mêmes et la conversion de type est également applicable; 3. Les panneaux de multiplication utilisent * les panneaux, qui conviennent aux nombres et aux cha?nes similaires; 4. La division utilise / signes, qui doit éviter de diviser par zéro, et noter que le résultat peut être des nombres à virgule flottante; 5. Prendre les signes du module peut être utilisé pour juger des nombres impairs et uniformes, et lors du traitement des nombres négatifs, les signes restants sont cohérents avec le dividende. La clé pour utiliser correctement ces opérateurs est de s'assurer que les types de données sont clairs et que la situation limite est bien gérée.

Oui, PHP peut interagir avec les bases de données NoSQL comme MongoDB et Redis à travers des extensions ou des bibliothèques spécifiques. Tout d'abord, utilisez le pilote MongoDBPHP (installé via PECL ou Composer) pour créer des instances clients et faire fonctionner des bases de données et des collections, en prenant en charge l'insertion, la requête, l'agrégation et d'autres opérations; Deuxièmement, utilisez la bibliothèque Predis ou l'extension PHPREDIS pour vous connecter à Redis, effectuer des paramètres et des acquisitions de valeur clé, et recommander PHPredis pour des scénarios à haute performance, tandis que Predis est pratique pour un déploiement rapide; Les deux conviennent aux environnements de production et sont bien documentés.

TostayCurrentwithPhpDevelopments andBestPractices, suiventyewnewsources likephp.netandphpweekly, engagewithcommunitiesonforumums et conférences, keeptoolingupdated etgradualadoptnewfeatures, etreadorontruttetoopensourceprojects.

PhpBecamepopularforwebDevelopmentDuetoitSeaseOflearning, Samoussentegration withhtml, widespreadhostingsupport, andalargecosystemysteclustingframeworkslikeLaravelandcmsplateformeslikewordpress.itexcelSinlingFormSubMissions, ManagetingSeSeSessions, interactif, interactif

Tosetherighttimezoneinphp, usedate_default_timezone_set () Fonctionnellestartofyourscriptwithavalididentifiersuchas'america / new_york'.1.usedate_default_timezone_set () beforeanydate / timefunctions.20
