Maison > développement back-end > Problème PHP > Comment créer un projet avec openPNE

Comment créer un projet avec openPNE

醉折花枝作酒筹
Libérer: 2023-03-11 16:30:02
avant
2008 Les gens l'ont consulté

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编译安装目录
Copier après la connexion

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的新模块
Copier après la connexion

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
Copier après la connexion

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
Copier après la connexion

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    ===========清除一次缓存
Copier après la connexion

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 }
Copier après la connexion
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;)
      ),
    );
  }
}
?>
Copier après la connexion
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!

Étiquettes associées:
source:cnblogs.com
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal