Tutoriel d'introduction au framework PHP haute performance Symfony2 Classic
Dec 26, 2016 am 11:27 AMSymfony2 est un framework de développement Web basé sur le langage PHP, qui présente les caractéristiques d'une vitesse de développement rapide et de hautes performances. Cet article décrit en détail la configuration et le développement du programme du framework Symfony2 à travers le processus d'implémentation d'un exemple de programme.
Je prends le système Ubuntu comme exemple, en utilisant le package de compression .tgz, décompressez le fichier source dans le répertoire /var/www et exécutez?:
tar zxvf Symfony_Standard_Vendors_2.0.###.tgz -C /var/www
Le ci-dessus ### fait référence au numéro de version Lorsque je l'ai téléchargé, il s'agissait de BETA5.
Après décompression, le répertoire de Symfony2 est le suivant :
/var/www/ <- Web根目錄 Symfony/ <- Symfony2解壓目錄 app/ <- 存放symfony的核心文件的目錄 cache/ <- 存放緩存文件的目錄 config/ <- 存放應用程序全局配置的目錄 logs/ <- 存放日志的目錄 src/ <- 應用程序源代碼 ... vendor/ <- 供應商或第三方的模組和插件 ... web/ <- Web入口 app.php <- 生產(chǎn)環(huán)境下的前端控制器 ...
Si vous devez l'installer (si vous avez téléchargé le sans version fournisseur) Ou lors de la mise à jour du contenu du fournisseur (tiers), vous pouvez utiliser :
cd /var/www/Symfony php bin/vendors install
2. Configuration
La configuration de Symfony2 est très simple, il vous suffit de saisir dans le navigateur?:
http://localhost/Symfony/web/config.php
puis de suivre les instructions. Ce qui est à noter, c'est le problème d'autorisation des répertoires app/cache et app/logs Depuis que je l'ai installé sous Ubuntu, je peux l'utiliser (firehare est mon nom d'utilisateur, vous pouvez le remplacer par votre nom d'utilisateur ici) :
#為了保險起見 rm -rf app/cache/* rm -rf app/logs/* #設置ACL sudo setfacl -R -m u:www-data:rwx -m u:firehare:rwx app/cache app/logs sudo setfacl -dR -m u:www-data:rwx -m u:firehare:rwx app/cache app/logs
Si le système ne prend pas en charge la commande setfacl, il y a deux endroits pour vérifier?:
Si setfacl a été installé, sinon, vous pouvez utilisez l'installation de la commande suivante (elle semble être installée par défaut dans Ubuntu 11.10, le package s'appelle acl)?:
sudo apt-get install setfacl
Si setfacl a été installé , veuillez vérifier le fichier /etc/fstab pour voir si l'option acl a été ajoutée?:
# /var was on /dev/sda7 during installation UUID=c2cc4104-b421-479a-b21a-1108f8895110 /var ext4 defaults,acl 0 2
Remplissez ensuite le nom de la base de données et d'autres informations selon la page vous invite, puis copiez les informations. Accédez au fichier /var/www/Symfony/app/config/parameters.ini comme suit?:
; These parameters can be imported into other config files ; by enclosing the key with % (like %database_user%) ; Comments start with ';', as in php.ini [parameters] database_driver="pdo_mysql" database_host="localhost" database_name="symfony" database_user="symfony" database_password="symfony" mailer_transport="smtp" mailer_host="localhost" mailer_user="" mailer_password="" locale="zh_CN" secret="29f96e9e70c2797cb77dd088d3954d3c38d9b33f"
Si tout va bien, lorsque vous saisirez l'adresse suivante dans votre navigateur, vous obtiendrez une page de démonstration :
http://localhost/Symfony/web/app_dev.php
3. Programme exemple?:
1. Créer un bundle?:
Créez d'abord un bundle?:
php app/console gen:bundle "AcmeHelloBundle" src 為了確保Acme名稱空間可以被自動加載,請在你的app/autoload.php文件添加下列語句: $loader->registerNamespaces(array( // ... //添加自定義的名稱空間 'Acme' => __DIR__.'/../src', // ... )); 最后是將該Bundle注冊到Symfony2中,請在你的app/AppKernel.php文件中添加下列語句: // app/AppKernel.php public function registerBundles() { $bundles = array( // ... new AcmeHelloBundleAcmeHelloBundle(), ); // ... return $bundles; }
2. Créer un itinéraire
Le routage peut être créé dans app/config/routing.yml, mais afin d'avoir de bonnes habitudes de programmation et une bonne organisation du code, vous pouvez le placer dans Resources/config/routing.yml dans le répertoire Bundle créé, et dans app/config/routing. Seule la référence au fichier de routage est conservée dans le yml, comme indiqué ci-dessous?:
# app/config/routing.yml homepage: pattern: / defaults: { _controller: FrameworkBundle:Default:index } hello: resource: "@AcmeHelloBundle/Resources/config/routing.yml"
La vraie route est écrite en src/Acme/HelloBundle/Resources /config/routing.yml fichier de routage, comme suit?:
# src/Acme/HelloBundle/Resources/config/routing.yml hello: pattern: /hello/{name} defaults: { _controller: AcmeHelloBundle:Hello:index, name:'pu' }
3. Créez un contr?leur?:
Contr?leur Le nom doit être HelloController.php. La raison est très simple, car votre routage a déjà donné le nom du contr?leur. Les contr?leurs des lignes 4 et 7 du fichier de routage ci-dessus commencent tous les deux par AcmeHelloBundle:Hello. AcmeHelloBundle représente le nom du Bundle et Hello représente le nom du contr?leur, le contr?leur doit donc être HelloController.php et l'extension du nom du contr?leur est la convention de dénomination. Quant à l'index et au disons suivants, ce sont des méthodes de la classe contr?leur. La méthode d'index est définie ci-dessous. Bien entendu, le nom de la méthode indexAction est également une convention de dénomination?:
// src/Acme/HelloBundle/Controller/HelloController.php namespace AcmeHelloBundleController; use SymfonyComponentHttpFoundationResponse; class HelloController { public function indexAction($name) { return new Response('<html><body>Hello '.$name.'!</body></html>'); } }
De cette fa?on, lorsque nous entrons ?. > dans le navigateur
http://localhost/hello/index/Worldaffichera les mots Hello World !. 4. Créez un modèle?: Afin de réutiliser les blocs dans le fichier de mise en page, vous pouvez utiliser des modèles pour remplacer les instructions HTML dans le contr?leur. Créez d'abord un fichier de mise en page?:
{# app/Resources/views/layout.html.twig #} <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>{% block title %}Hello Application{% endblock %}</title> </head> <body> {% block body %}{% endblock %} </body> </html>Notez que ce fichier se trouve dans le répertoire app/Resources/views/ et que sa portée est le modèle global pour l'ensemble du dossier de candidature. Deux blocs sont définis dans ce fichier : titre et corps. L'étape suivante consiste à créer un modèle spécifiquement pour le contr?leur Hello, comme indiqué ci-dessous?:
{# src/Acme/HelloBundle/Resources/views/Hello/index.html.twig #} {% extends '::layout.html.twig' %} {% block body %} Hello {{ name }}! {% endblock %}Dans ce fichier, il hérite du modèle global, et Le corps du bloc est défini, ce qui remplace le bloc corps dans le modèle global. Si le système restitue ce modèle, il écrasera le corps de bloc du modèle global par le corps de bloc, puis le restituera.
Enfin, modifiez l'instruction HTML dans le contr?leur pour afficher le modèle ci-dessus?:
// src/Acme/HelloBundle/Controller/HelloController.php namespace AcmeHelloBundleController; use SymfonyBundleFrameworkBundleControllerController; class HelloController extends Controller { public function indexAction($name) { return $this->render('AcmeHelloBundle:Hello:index.html.twig', array('name' => $name)); } }Framework PHP plus hautes performances Introduction classique Symfony2 Pour le tutoriel -articles liés, veuillez faire attention au site Web PHP 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)