Comment utiliser les commandes symfony pour créer des projets ? Cet article présente principalement la méthode d'utilisation de la commande symfony pour créer un projet, et analyse l'utilisation de la commande Symfony et les compétences associées en matière de création de projet sous forme d'exemples. Les amis dans le besoin peuvent s'y référer. J'espère que cela aide tout le monde.
L'exemple de cet article décrit comment utiliser la commande symfony pour créer un projet. Partagez-le avec tout le monde pour référence, comme suit :
Présentation
Ce chapitre décrit le cadre structurel raisonnable d'un projet Symfony et utilise la commande symfony pour initialiser le structure du projet.
Introduction
Dans symfony, un projet est un ensemble de services et d'opérations efficaces sous un nom de domaine spécifié, partageant le même modèle de projet.
Dans un projet, les opérations dans l'application sont un ensemble de logique ; chaque application peut s'exécuter normalement et indépendamment sans interférer avec les autres applications du même projet.
Dans la plupart des cas, un projet contiendra deux applications, une responsable de l'affichage au premier plan et une responsable du traitement en arrière-plan, utilisant la même base de données. Bien entendu, vous pouvez également inclure de nombreux petits sites dans un même projet, chaque site étant une application différente. Notez que les hyperliens utilisés entre différentes applications doivent utiliser des chemins absolus.
Chaque application est un ensemble de modules, chaque module est responsable d'une fonction particulière. Un module utilise généralement une page ou un groupe de pages pour des fonctionnalités similaires. Par exemple, les modules peuvent être l'accueil, les articles, l'aide, le panier, le compte, etc.
Fonction des modules : Chaque module a ses propres fonctions, par exemple, le module shoppingCart (panier d'achat) doit avoir des fonctions d'ajout, d'affichage et de mise à jour. Le comportement fonctionnel peut être considéré comme le comportement d'une page dans une application Web typique.
Si un nouveau projet comporte trop de niveaux, il est facile de regrouper toutes les fonctions dans le module afin que la structure des fichiers reste simple. Lorsque l'application devient plus complexe, les fonctions peuvent être organisées en modules logiques.
Chaque application peut s'exécuter dans différents environnements, par exemple dans différentes configurations ou bases de données. Généralement, chaque nouvelle application fonctionnera dans trois environnements (développement, test et production finale). Chaque application peut s'exécuter dans plus d'environnements si nécessaire et n'a besoin que de modifier les accessoires de configuration dans différents environnements.
Par exemple, un environnement de test devra enregistrer les avertissements et les erreurs, tandis qu'un environnement de production final n'aura besoin que d'enregistrer les erreurs. L'accélération du cache n'est généralement pas activée dans les environnements de développement, mais doit être activée dans les environnements de test et de production finale. Les environnements de développement et de test peuvent nécessiter que les données de test soient stockées dans la base de données distante du produit final. Tous les environnements peuvent coexister sur une seule machine, et souvent seul l'environnement de production final se trouve sur le serveur de production.
Remarque : Si vous utilisez Symfony via le bac à sable, vous n'avez pas besoin de configurer un projet ou une application nommé 'sf_sandbox' et une application nommée 'frontend'. Vous n'avez pas non plus besoin de configurer un serveur Web, placez simplement votre programme dans le répertoire web/root.
Pake
SymFony utilise l'outil spécialisé Pake pour gérer des projets, des applications et des modules. Pake est un outil php similaire à la commande Rake (c'est un outil qui convertit la commande make en Ruby). Il automatise certaines tâches administratives basées sur un fichier de configuration spécial appelé pakefile.php. Si vous utilisez l'outil pake au lieu de la ligne de commande symfony, tout devient très simple.
Pour obtenir une liste de toutes les commandes d'opération de gestion valides, entrez simplement dans le répertoire de votre projet :
$ symfony -T
Planification des tâches CLI (opération en ligne de commande) pour un projet pendant les premières étapes. Une description complète de la planification des tâches CLI est disponible dans le chapitre CLI.
Paramètres du projet
Avant que tout démarre, vous devez créer un nouveau répertoire pour stocker le projet :
$ mkdir /home/steve/myproject
Ensuite, commencez à initialiser le projet pour générer des fichiers et des répertoires originaux, entrez simplement :
$ cd /home/steve/myproject $ symfony init-project myproject
Voici un aperçu de la structure arborescente du système de fichiers nouvellement créée :
apps/
batch/
cache/
config/
data/
doc/
lib/
log/
test/
web/
la commande symfony peut être utilisé à tout moment dans le répertoire disponible du projet en cours.
Paramètres de l'application
Le projet n'est pas encore terminé, il lui faut encore au moins une application. Utilisez d'abord la commande symfony init-app pour initialiser une application, et utilisez les paramètres suivant la commande pour nommer l'application :
$ symfony init-app myapp
De cette façon, une myapp est créée dans le dossier apps/ à la racine répertoire du projet. Répertoire, qui contient une configuration d'application par défaut et un ensemble de fichiers de répertoire pour votre site :
apps/
myapp/
config/
i18n/
lib /
modules/
templates/
Certains fichiers php qui agissent comme des contrôleurs frontaux dans leurs environnements par défaut respectifs sont également créés dans le répertoire web du répertoire racine du projet :
web/
index.php
myapp_dev.php
index.php是production新应用程序的前端控制器。因为你创建这个项目中的第一个应用程序时,Symfony创建了一个调用 index.php的文件,例如 myapp.php (如果你现在添加一个名为 mynewapp 的新应用程序,新产品的前端控制器将被命名为mynewapp.php)。在 开发环境中运行程序时,调用前端控制器 myapp_dev.php。
注意:你如果仔细阅读了介绍,你可能会对myapp_test.php文件的位置感到意外。事实上,测试 环境是用于对你的应用程序的构件进行单元测试,它不需要前端控制器。可以参考单元测试章节去了解更多详细内容。
从现在开始,/home/steve/myproject/ 目录将会作为项目的根目录。根目录的路径已经被保存为 SF_ROOT_DIR 常量,定义在 index.php 文件中,并且我们将会用这个常量名代替实际路径以避免把不叫Steve的读者搞糊涂了(译者注:因为作者将项目放在/home/steve /myprojetc的目录下,这个路径每个人可能都不尽相同,所以使用常量SF_ROOT_DIR来代替了实际路径)。
Web服务器设置
为了访问和测试新的应用程序,需要配置web服务器。这有一个Apache的例子,在 httpd.conf 配置文件中加入一个新的虚拟主机:
<Directory "/$data_dir/symfony/web/sf"> AllowOverride All Allow from All </Directory> <VirtualHost *:80> ServerName myapp.example.com DocumentRoot "/home/steve/myproject/web" DirectoryIndex index.php Alias /sf /$data_dir/symfony/web/sf <Directory "/home/steve/myproject/web"> AllowOverride All Allow from All </Directory> </VirtualHost>
注意:上面的配置中的 $data_dir 变量需要替换成你的PEAR库目录。例如:在*nix系统中,你可以输入:
<code> Alias /sf /usr/local/lib/php/data/symfony/web/sf</code>
重启Apache服务之后,就可以看到调用新创建的应用程序的页面,只需要在一个标准的web浏览器的地址栏输入下列路径:
http://myapp.example.com/index.php/
或者,在调试模式下使用这个路径:
http://myapp.example.com/myapp_dev.php/
注意:Symfony显示‘简短漂亮的(smart)'路径时用到了 mod_rewrite 模块。如果你的Apache版本没有将 mod_rewrite 模块编译进去,那么需要在 httpd.conf 中检查模块mod_rewrite是否是动态模块方式(DSO)安装的,并且确认是否已经打开(译者注:关于Apache的mod_rewrite模块安 装和使用方法请参考Apache相关文档,这里假设读者已经具备这方面知识而不作过多说明):
AddModule mod_rewrite.c LoadModule rewrite_module modules/mod_rewrite.so
模块设置
你这个新的应用程序并不出众,它缺乏吸引人的功能。如果你想增加功能性,你需要在在其中用到模块。这里再一次用到了 symfony 命令,参数为 init-module ,后面跟着应用程序名称和新模块的名称:
$ symfony init-module myapp mymodule
创建以后的树结构如下:
modules/
mymodule/
actions/
config/
lib/
templates/
validate/
新模块直接可以被使用:
http://myapp.example.com/index.php/mymodule
然后你需要让它正常的工作,编辑文件 myapp/modules/mymodule/templates/indexSuccess.php 输入:
Hello, world !
保存它,刷新刚才的页面就可以看到内容!
源文件版本控制(Source versioning)
应用程序设置完成之后,建议开始进行源文件版本控制。Symfony从一开始就支持CVS(译者注:版本控制系统),建议使用Subversion(译者注:一个版本控制系统软件,采用CVS 的运作模型, 并以取代CVS 为目标)。下面的例子列出了一些Subversion的命令,用于从在一个安装了Subversion的服务器上创建一个新项目的"仓库"(译者注:repository,源代码储存的地方)。对于Windows用户,建议客户端使用TortoiseSVN。关于源文件版本控制的更多信息和命令用法,请参考Subversion文档。
下面的例子假设$SVNREP_DIR是一个已经定义的环境变量。如果你还没有定义它,你需要用"仓库"的实际路径代替$SVNREP_DIR变量。
现在让我们开始创建myproject项目的新"仓库":
$ svnadmin create $SVNREP_DIR/myproject
然后用下面这串命令创建新"仓库"的基本组织结构(规划),其中包含 trunk, tags 和 branches 三个目录:
[code]$ svn mkdir -m "layout creation" file:///$SVNREP_DIR/myproject/trunk file:///$SVNREP_DIR/myproject/tags file:///$SVNREP_DIR/myproject/branches[/code]
这将是你第一个版本。现在你必须导入项目的文件,但不包括缓存和日志等临时文件:
$ cd /home/steve/myproject $ rm -rf cache/* $ rm -rf log/* $ svn import -m "initial import" . file:///$SVNREP_DIR/myproject/trunk
检查提交的文件:
$ svn ls file:///$SVNREP_DIR/myproject/trunk/
看上去很不错。现在SVN"仓库"已经记录了所有项目文件的版本(和更改历史)。就是说实际路径为 /home/steve/myproject 的目录中所有的文件都已经被"仓库"记录。要做到这一点,首先重命名 myproject 目录名,当一切运行正常的时候可以删除它,并且在新目录中向"仓库"提交一个checkout:
$ cd /home/steve $ mv myproject myproject.origin $ svn co file:///$SVNREP_DIR/myproject/trunk myproject $ ls myproject
现在你可以在 /home/steve/myproject/ 目录下的文件中工作,并且提交修改到"仓库"中。不要忘记作一些清理和删除myproject.origin目录,它现在没有用了。
还有一些另外的设置。当你向"仓库"中提交工作目录时,会复制一些多余的文件,像项目中 cache 和 log 目录下的文件。因此你需要针对这个项目在svn中指定一个忽略列表。你也需要重新将 cache/ 和 log/ 目录的权限设置为完全控制,在访问时产生的文件SVN将不会储存:
$ cd /home/steve/myproject $ svn propedit svn:ignore . $ chmod 777 cache $ chmod 777 log
这将调用在SVN中设置的默认的文本编辑器。如果没有生效,就像下面这样设置subversion首选的编辑器:
$ export SVN_EDITOR=<name of editor> $ svn propedit svn:ignore .
直接在SVN中的忽略列表中加入myproject子目录,这样提交的时候就忽略了:
cache log
保存然后退出,这样就完成了。
相关推荐:
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!