Maison > Article > développement back-end > Comment créer un projet avec openPNE
Je ne sais pas si vous avez utilisé openPNE. En fait, nous pouvons utiliser openPNE pour créer des projets. Aujourd'hui, nous allons présenter la méthode de création d'un projet dans openPNE. Vous pouvez vous y référer si nécessaire.
Recherchez la commande php sous l'invite de commande cmd
Ouvrez "Poste de travail"->"Propriétés"->"Avancé"->"Variables d'environnement"->"Variables système"- > ;"path", modifiez sa valeur et ajoutez l'adresse de chemin suivante devant :
D:\wamp\bin\php\php5.3.0; ===========php编译安装目录
Copiez php.ini dans le répertoire C:Windows
Symfony est un programme simple à construireLe symfony téléchargé Décompressez le fichier compressé package dans le dossier www et nommez-le symfony
Entrée de ligne de commande
e:打开E盘根目录 cd..\.. ===========返回上两级,或打开指定目录 cd wamp\www\symfony ===========打开指定目录 php data\bin\symfony -V ===========查询symfony版本信息 php data\bin\symfony generate:project newProject ===========在www\symfony文件夹下生成一个名叫newProject的新项目 php data\bin\symfony generate:app myApp ===========在该项目的APPS文件夹下生成一个名叫myApp新程序 php data\bin\symfony generate:module myApp myModule ===========在myApp程序文件夹下建立一个名叫myModule的新模块
La commande symfony appelée par php ouvre le répertoire où la commande symfony est stockée par rapport au répertoire courant
Accès à la méthode d'action écrite dans la classe d'action et le chemin du modèle correspondant nom du module myModule nom de la méthode d'action myAction
Installation OpenPNEExtraire le package compressé téléchargé dans le répertoire du serveur
Recherchez ProjectConfiguration..php.sample et renommez-le en ProjectConfiguration..php
Service Apache Ouvrez le module de réécriture
Ouvrez le dossier où se trouve openPNE sous la commande cmd et entrez
php symfony openpne:install
L'extension APC de PHP : Si nécessaire, téléchargez le php_apc.dll en 115 dans le répertoire wampbinphpphp5.3.0ext
Ouvrez le php_apc du php et ouvrez php.ini, recherchez extension=php_apc.dll et ajoutez
apc.enabled=0 apc.shm_segments=0 apc.enable_cli=0
S'il y a un dossier de cache dans le répertoire racine, effacez le contenu du cache
Créez un programmeentrée cmd
php symfony opGenerate:plugin opVotePlugin ===========创建一个vote插件程序 php symfony opGenerate:app opVotePlugin pc_frontend ===========为vote插件程序创建电脑前台文件夹 php symfony opGenerate:module opVotePlugin pc_frontend vote ===========在vote插件程序电脑前台文件夹内创建vote模块 php symfony cc ===========清除一次缓存
action d'action et droits d'accès
Créez un fichier opVotePluginVoteActions..php dans le répertoire pluginsopVotePluginlibactions. Écrivez la classe opVotePluginVoteActions sfActions{}
dans le fichier puis héritez de la classe qui vient d'être écrite dans le fichier opVotePluginappspc_frontendmodulesvoteactionsactions..php.
voteActions PluginVoteActions{}Non seulement la réception de l'ordinateur Dans le dossier pc_frontend, toutes les actions des modules avant et arrière de l'ordinateur mobile sous opVotePluginapps peuvent hériter de cette classe pour implémenter une classe pour gérer plusieurs frontaux Créez le fichier pluginsopVotePluginappspc_frontendmodulesvoteconfigsecurity.yml. et entrez all: is_secure: on identifiants : SNSMember indique que ce module nécessite une authentification et n'est accessible qu'aux membresÉcrivez une action dans la classe opVotePluginVoteActionsexecuteShow(sfWebRequest){} Créez ensuite pluginsopVotePluginappspc_frontendmodulesvotetemplatesshowSuccess.phpExécutez la commande php symfony une fois ccTable de base de données établie
Créez le fichier plugins/opVotePlugin/config/doctrine/schema.yml.créer trois tableaux : vote_question, vote_question_option et vote_answer. Les relations représentent l'établissement de relations de clé étrangère Exécutez la commande à ce moment php symfony openpne:install réinstallera openPNE et créera les trois premières tables
puis exécutera php symfony doctrine:build --all -. -and-load pour réinsérer les données
règles de routage
Create plugins/opVotePlugin/ lib/routing/opVotePluginFrontendCollection..phpInputoptions: charset: utf8 VoteQuestion: actAs: [Timestampable] columns: id: { type: (4), primary: , autoincrement: } member_id: { type: (4), notnull: } title: { type: (140), notnull: } body: { type: } relations: Member: { onDelete: cascade } VoteQuestionOption: columns: id: { type: (4), primary: , autoincrement: } vote_question_id: { type: (4), notnull: } body: { type: (140), notnull: } relations: VoteQuestion: { onDelete: cascade, foreignAlias: VoteQuestionOptions } VoteAnswer: actAs: [Timestampable] columns: id: { type: (4), primary: , autoincrement: } member_id: { type: (4), notnull: } vote_question_id: { type: (4), notnull: } vote_question_option_id: { type: (4), notnull: } body: { type: } relations: Member: { onDelete: cascade } VoteQuestion: { onDelete: cascade, foreignAlias: VoteAnswers } VoteQuestionOption: { onDelete: cascade, foreignAlias: VoteAnswers }Create plugins/opVotePlugin/apps/pc_frontend/config/routing. ymlInput
<?php opVotePluginFrontendRouteCollection sfRouteCollection { __construct( ) { parent::__construct(); ->routes = ( 'vote_list' => sfRequestRoute( '/vote', ('module' => 'vote', 'action' => 'index'), ('sf_method' => ('get')) ), 'vote_new' => sfRequestRoute( '/vote/new', ('module' => 'vote', 'action' => 'new'), ('sf_method' => ('get')) ), 'vote_create' => sfRequestRoute( '/vote/create', ('module' => 'vote', 'action' => 'create'), ('sf_method' => ('post')) ), 'vote_edit' => sfDoctrineRoute( '/vote/edit/:id', ('module' => 'vote', 'action' => 'edit'), ('id' => '\d+', 'sf_method' => ('get')), ('model' => 'VoteQuestion', 'type' => 'object') ), 'vote_update' => sfDoctrineRoute( '/vote/update/:id', ('module' => 'vote', 'action' => 'update'), ('id' => '\d+', 'sf_method' => ('post')), ('model' => 'VoteQuestion', 'type' => 'object') ), 'vote_show' => sfDoctrineRoute( '/vote/show/:id', ('module' => 'vote', 'action' => 'show'), ('id' => '\d+', 'sf_method' => ('get')), ('model' => 'VoteQuestion', 'type' => 'object') ), 'vote_post' => sfDoctrineRoute( '/vote/post/:id', ('module' => 'vote', 'action' => 'post'), ('id' => '\d+', 'sf_method' => ('post')), ('model' => 'VoteQuestion', 'type' => 'object') ), 'vote_delete_confirm' => sfDoctrineRoute( '/vote/delete/:id', ('module' => 'vote', 'action' => 'deleteConfirm'), ('id' => '\d+', 'sf_method' => ('get')), ('model' => 'VoteQuestion', 'type' => 'object') ), 'vote_delete' => sfDoctrineRoute( '/vote/delete/:id', ('module' => 'vote', 'action' => 'delete'), ('id' => '\d+', 'sf_method' => ('post')), ('model' => 'VoteQuestion', 'type' => 'object') ), 'vote_nodefaults' => sfRoute( '/vote/*', ('module' => 'default', 'action' => 'error') ), ); } } ?>Spécifiez quelle classe définir les règles de routageEntrez la commande php symfony cc Entrez la commande php symfony app:routes pc_frontend pour vérifier si le routage est défini avec succès Vous pouvez également créer opVotePluginFrontendCollection. Fichiers .php et router.yml Ils seront accessibles par la route par défaut Apprentissage recommandé :
Tutoriel vidéo php
.
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!