Maison  >  Article  >  développement back-end  >  Comment créer un projet avec openPNE

Comment créer un projet avec openPNE

醉折花枝作酒筹
醉折花枝作酒筹avant
2021-07-16 15:56:091982parcourir

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.

Comment créer un projet avec openPNE

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 à construire

Le 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 OpenPNE

Extraire 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 programme

entré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 opVotePluginVoteActions

executeShow(sfWebRequest){}

Créez ensuite pluginsopVotePluginappspc_frontendmodulesvotetemplatesshowSuccess.php

Exécutez la commande php symfony une fois cc

Table 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..php

Input

options:
  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. yml

Input

<?php
 opVotePluginFrontendRouteCollection  sfRouteCollection
{
  __construct( )
  {
    parent::__construct();
->routes = (
      &#39;vote_list&#39; =>  sfRequestRoute(    
        &#39;/vote&#39;,                                    (&#39;module&#39; => &#39;vote&#39;, &#39;action&#39; => &#39;index&#39;),            (&#39;sf_method&#39; => (&#39;get&#39;))
      ),
      &#39;vote_new&#39; =>  sfRequestRoute(
        &#39;/vote/new&#39;,
(&#39;module&#39; => &#39;vote&#39;, &#39;action&#39; => &#39;new&#39;),
(&#39;sf_method&#39; => (&#39;get&#39;))
      ),
      &#39;vote_create&#39; =>  sfRequestRoute(
        &#39;/vote/create&#39;,
(&#39;module&#39; => &#39;vote&#39;, &#39;action&#39; => &#39;create&#39;),
(&#39;sf_method&#39; => (&#39;post&#39;))
      ),
      &#39;vote_edit&#39; =>  sfDoctrineRoute(
        &#39;/vote/edit/:id&#39;,            (&#39;module&#39; => &#39;vote&#39;, &#39;action&#39; => &#39;edit&#39;),
(&#39;id&#39; => &#39;\d+&#39;, &#39;sf_method&#39; => (&#39;get&#39;)),
(&#39;model&#39; => &#39;VoteQuestion&#39;, &#39;type&#39; => &#39;object&#39;)
      ),
      &#39;vote_update&#39; =>  sfDoctrineRoute(
        &#39;/vote/update/:id&#39;,
(&#39;module&#39; => &#39;vote&#39;, &#39;action&#39; => &#39;update&#39;),
(&#39;id&#39; => &#39;\d+&#39;, &#39;sf_method&#39; => (&#39;post&#39;)),
(&#39;model&#39; => &#39;VoteQuestion&#39;, &#39;type&#39; => &#39;object&#39;)
      ),
      &#39;vote_show&#39; =>  sfDoctrineRoute(
        &#39;/vote/show/:id&#39;,
(&#39;module&#39; => &#39;vote&#39;, &#39;action&#39; => &#39;show&#39;),
(&#39;id&#39; => &#39;\d+&#39;, &#39;sf_method&#39; => (&#39;get&#39;)),
(&#39;model&#39; => &#39;VoteQuestion&#39;, &#39;type&#39; => &#39;object&#39;)
      ),
      &#39;vote_post&#39; =>  sfDoctrineRoute(
        &#39;/vote/post/:id&#39;,
(&#39;module&#39; => &#39;vote&#39;, &#39;action&#39; => &#39;post&#39;),
(&#39;id&#39; => &#39;\d+&#39;, &#39;sf_method&#39; => (&#39;post&#39;)),
(&#39;model&#39; => &#39;VoteQuestion&#39;, &#39;type&#39; => &#39;object&#39;)
      ),
      &#39;vote_delete_confirm&#39; =>  sfDoctrineRoute(
        &#39;/vote/delete/:id&#39;,
(&#39;module&#39; => &#39;vote&#39;, &#39;action&#39; => &#39;deleteConfirm&#39;),
(&#39;id&#39; => &#39;\d+&#39;, &#39;sf_method&#39; => (&#39;get&#39;)),
(&#39;model&#39; => &#39;VoteQuestion&#39;, &#39;type&#39; => &#39;object&#39;)
      ),
      &#39;vote_delete&#39; =>  sfDoctrineRoute(
        &#39;/vote/delete/:id&#39;,
(&#39;module&#39; => &#39;vote&#39;, &#39;action&#39; => &#39;delete&#39;),
(&#39;id&#39; => &#39;\d+&#39;, &#39;sf_method&#39; => (&#39;post&#39;)),
(&#39;model&#39; => &#39;VoteQuestion&#39;, &#39;type&#39; => &#39;object&#39;)
      ),
     &#39;vote_nodefaults&#39; =>  sfRoute(
        &#39;/vote/*&#39;,
(&#39;module&#39; => &#39;default&#39;, &#39;action&#39; => &#39;error&#39;)
      ),
    );
  }
}
?>

Spécifiez quelle classe définir les règles de routage

Entrez 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!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer