> 백엔드 개발 > PHP 문제 > openPNE를 사용하여 프로젝트를 생성하는 방법

openPNE를 사용하여 프로젝트를 생성하는 방법

醉折花枝作酒筹
풀어 주다: 2023-03-11 16:30:02
앞으로
2006명이 탐색했습니다.

openPNE를 사용해 보셨는지 모르겠습니다. 실제로 우리는 openPNE를 사용하여 프로젝트를 만들 수 있습니다. 오늘은 openPNE에서 프로젝트를 생성하는 방법을 소개하겠습니다. 필요하시면 참고하시면 됩니다.

openPNE를 사용하여 프로젝트를 생성하는 방법

cmd 명령 프롬프트에서 php 명령을 찾으세요
"내 컴퓨터"->"속성"->"고급"->"환경 변수"->"시스템 변수"- >를 엽니다. ;"path", 해당 값을 편집하고 앞에 다음 경로 주소를 추가합니다.

D:\wamp\bin\php\php5.3.0;   ===========php编译安装目录
로그인 후 복사

php.ini를 C:Windows 디렉터리에 복사

Symfony는 간단한 빌드 프로그램입니다

다운받은 심포니 압축을 푼다 www 폴더에 패키지 이름을 지정하고 Symfony

명령줄 입력

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的新模块
로그인 후 복사

php에서 호출되는 Symfony 명령은 현재 디렉터리를 기준으로 Symfony 명령이 저장된 디렉터리를 엽니다

액션 클래스에 작성된 액션 메서드에 액세스하고 해당 템플릿 경로 mymodule 모듈 이름 myAction 작업 메서드 이름

OpenPNE 설치

다운로드한 압축 패키지를 서버 디렉터리에 추출합니다

ProjectConfiguration..php.sample을 찾아 ProjectConfiguration..php

Apache 서비스 이름으로 바꿉니다. rewrite 모듈

cmd 명령에서 openPNE가 있는 폴더를 열고

php symfony openpne:install
로그인 후 복사

PHP의 APC 확장자를 입력합니다. 필요한 경우 115의 php_apc.dll을 wampbinphpphp5.3.0ext 디렉터리에 다운로드합니다.

php의 php_apc를 엽니다. 확장 프로그램을 열고 php.ini 를 열고, Extension=php_apc.dll을 찾아

apc.enabled=0
apc.shm_segments=0
apc.enable_cli=0
로그인 후 복사

를 추가하세요. 루트 디렉터리에 캐시 폴더가 있으면 캐시의 내용을 삭제하세요

프로그램 만들기

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    ===========清除一次缓存
로그인 후 복사

작업 작업 및 액세스 권한

플러그인sopVotePluginlibactions 디렉터리에 opVotePluginVoteActions..php 파일을 생성합니다. 파일에 클래스 클래스 opVotePluginVoteActions sfActions{}

를 작성한 다음 opVotePluginappspc_frontendmodulesvoteactionsactions..php 파일에 방금 작성된 클래스를 상속합니다.

voteActions PluginVoteActions{}

컴퓨터 프런트 데스크뿐만 아니라 pc_frontend 폴더에서 opVotePluginapps 아래의 모든 모바일 컴퓨터 프런트 및 백 모듈 작업은 이 클래스를 상속하여 여러 프런트 엔드를 관리하는 하나의 클래스를 구현할 수 있습니다.

pluginsopVotePluginappspc_frontendmodulesvoteconfigsecurity.yml 파일을 생성하고

all:

is_secure: on

자격 증명: SNSMember

이 모듈에는 인증이 필요하며 구성원만 액세스할 수 있음을 나타냅니다.

opVotePluginVoteActions 클래스에 작업 작성

executeShow(sfWebRequest){}

그런 다음 플러그인sopVotePluginapp을 생성합니다. spc_frontendmodulesvotetemplatesshowSuccess .php

php Symfony 명령을 한 번 실행합니다. cc

데이터베이스 테이블 설정

plugins/opVotePlugin/config/doctrine/schema.yml 파일을 생성합니다.

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 }
로그인 후 복사
를 입력하여 vote_question, vote_question_option, 및 vote_answer 관계는 외래 키 관계의 설정을 나타냅니다.

지금 명령을 실행하면 php Symfony openpne:install이 openPNE를 다시 설치하고 처음 세 개의 테이블을 생성한 다음

php Symfony Doctrine:build --all --and를 실행합니다. -데이터를 다시 삽입하려면

라우팅 규칙

플러그인 생성/opVotePlugin/ lib/routing/opVotePluginFrontendCollection..php

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;)
      ),
    );
  }
}
?>
로그인 후 복사

플러그인 생성/opVotePlugin/apps/pc_frontend/config/routing.yml

Input

vote:
: opVotePluginFrontendRouteCollection
  options: { name: vote }
로그인 후 복사
라우팅 규칙을 설정할 클래스를 지정하세요

php Symfony cc 명령을 입력하세요.

라우팅이 성공적으로 설정되었는지 확인하려면 php Symfony app:routes pc_frontend 명령을 입력하세요.

opVotePluginFrontendCollection.을 생성할 수도 있습니다. php 및 Routing.yml 파일은 기본 경로로 액세스됩니다.

추천 학습:

php 비디오 튜토리얼

위 내용은 openPNE를 사용하여 프로젝트를 생성하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:cnblogs.com
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿