I don’t know if you have used openPNE. In fact, we can use openPNE to create projects. Today we will introduce the method of creating a project in openPNE. You can refer to it if necessary.
Find the php command under the cmd command prompt
Open "My Computer"->"Properties"->"Advanced "->"Environment Variables"->"System Variables"->"path", edit its value, and add the following path address in front
:
D:\wamp\bin\php\php5.3.0; ===========php编译安装目录
Place php. ini to the C:\Windows directory
Simple building program for symfony
Extract the downloaded symfony compressed package to the www folder and name it symfony
Command line input
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的新模块
The symfony command called by php opens the directory where the symfony command is stored relative to the current directory
The action method written in the action class and the access path to the corresponding template mymodule module name myAction action method name
OpenPNE installation
Extract the downloaded compressed package to the server directory
Look for ProjectConfiguration..php. The sample is renamed to ProjectConfiguration..php
Apache service opens the rewrite module
Open the folder where openPNE is located under the cmd command and enter
php symfony openpne:install
APC extension of PHP: if necessary Download php_apc.dll in 115 to the wamp\bin\php\php5.3.0\ext directory
Open the php_apc of the php extension, open php.ini, find extension=php_apc.dll and add in the next line
apc.enabled=0 apc.shm_segments=0 apc.enable_cli=0
If there is a cache folder in the root directory, clear the contents in the cache
Create a program
cmd input
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 actions and access rights
Create an opVotePluginVoteActions..php file in the plugins\opVotePlugin\lib\actions directory
Write the class class opVotePluginVoteActions sfActions{}## in the file
#Then the class in the opVotePlugin\apps\pc_frontend\modules\vote\actions\actions..php file inherits the class just written voteActions opVotePluginVoteActions{}Not only the computer frontend In the pc_frontend folder, all mobile computer front and back module actions under opVotePlugin\apps can inherit this class to implement one class to manage multiple front endsCreate plugins\opVotePlugin\apps\pc_frontend\modules\vote\ config\security.yml file and enter all: is_secure: on credentials: SNSMember means that this module requires verification and only members can access it Write an action in the opVotePluginVoteActions class executeShow(sfWebRequest){}Then create plugins\opVotePlugin\apps\pc_frontend\modules\vote\templates\showSuccess.php Execute the command php symfony cc onceCreate a database table
Create the plugins/opVotePlugin/config/doctrine/schema.yml file and enteroptions: 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 }means that the three tables vote_question, vote_question_option, and vote_answer have been created respectively. The relations represent the establishment of foreign key relationships. At this time, executing the command php symfony openpne:install will reinstall openPNE and create the previous After three tablesexecute php symfony doctrine:build --all --and-load again to reinsert the data
routing rules
create plugins/opVotePlugin/lib/routing/opVotePluginFrontendCollection..phpEnter<?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') ), ); } } ?>Create plugins/opVotePlugin/apps/pc_frontend/config/routing.ymlEnter
vote: : opVotePluginFrontendRouteCollection options: { name: vote }Specify which class to set routing rulesEnter the command php symfony ccEnter the command php symfony app:routes pc_frontend to check whether the route is set successfully It is also possible not to create the opVotePluginFrontendCollection..php and routing.yml files. Access will be based on the default route. Recommended learning:
The above is the detailed content of How to create a project using openPNE. For more information, please follow other related articles on the PHP Chinese website!

Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

Video Face Swap
Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Article

Hot Tools

Notepad++7.3.1
Easy-to-use and free code editor

SecLists
SecLists is the ultimate security tester's companion. It is a collection of various types of lists that are frequently used during security assessments, all in one place. SecLists helps make security testing more efficient and productive by conveniently providing all the lists a security tester might need. List types include usernames, passwords, URLs, fuzzing payloads, sensitive data patterns, web shells, and more. The tester can simply pull this repository onto a new test machine and he will have access to every type of list he needs.

MantisBT
Mantis is an easy-to-deploy web-based defect tracking tool designed to aid in product defect tracking. It requires PHP, MySQL and a web server. Check out our demo and hosting services.

ZendStudio 13.5.1 Mac
Powerful PHP integrated development environment

SublimeText3 Chinese version
Chinese version, very easy to use
