Home  >  Article  >  Backend Development  >  How to create a project using openPNE

How to create a project using openPNE

醉折花枝作酒筹
醉折花枝作酒筹forward
2021-07-16 15:56:091982browse

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.

How to create a project using openPNE

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 ends

Create 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 once

Create a database table

Create the plugins/opVotePlugin/config/doctrine/schema.yml file and enter


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 }

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 tables

execute php symfony doctrine:build --all --and-load again to reinsert the data

routing rules

create plugins/opVotePlugin/lib/routing/opVotePluginFrontendCollection..php

Enter

<?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;)
      ),
    );
  }
}
?>

Create plugins/opVotePlugin/apps/pc_frontend/config/routing.yml

Enter

vote:
: opVotePluginFrontendRouteCollection
  options: { name: vote }

Specify which class to set routing rules

Enter the command php symfony cc

Enter 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:

php video tutorial

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!

Statement:
This article is reproduced at:cnblogs.com. If there is any infringement, please contact admin@php.cn delete