Heim  >  Artikel  >  Backend-Entwicklung  >  So erstellen Sie ein Projekt mit openPNE

So erstellen Sie ein Projekt mit openPNE

醉折花枝作酒筹
醉折花枝作酒筹nach vorne
2021-07-16 15:56:091968Durchsuche

Ich weiß nicht, ob Sie openPNE verwendet haben. Tatsächlich können wir openPNE zum Erstellen von Projekten verwenden. Heute stellen wir die Methode zum Erstellen eines Projekts in openPNE vor. Sie können bei Bedarf darauf zurückgreifen.

So erstellen Sie ein Projekt mit openPNE

Suchen Sie den PHP-Befehl unter der cmd-Eingabeaufforderung.
Öffnen Sie „Arbeitsplatz“ – > „Eigenschaften“ – > „Erweitert“ – > „Umgebungsvariablen“ – > „Systemvariablen“ – > ;"Pfad", bearbeiten Sie seinen Wert und fügen Sie die folgende Pfadadresse voran:

D:\wamp\bin\php\php5.3.0;   ===========php编译安装目录

Kopieren Sie php.ini in das C:Windows-Verzeichnis

Symfony ist ein einfach zu erstellendes Programm

Das heruntergeladene Symfony Entpacken Sie das komprimierte Paket in den www-Ordner und nennen Sie es symfony

Befehlszeileneingabe

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的新模块

Der von PHP aufgerufene Symfony-Befehl öffnet das Verzeichnis, in dem der Symfony-Befehl relativ zum aktuellen Verzeichnis gespeichert ist

Zugriff auf die in der Aktionsklasse geschriebene Aktionsmethode und der entsprechende Vorlagenpfad MyModule Modulname MyAction Aktionsmethodenname das Rewrite-Modul

Öffnen Sie den Ordner, in dem sich openPNE befindet, unter dem Befehl cmd und geben Sie

php symfony openpne:install

PHPs APC-Erweiterung ein: Laden Sie bei Bedarf die php_apc.dll in 115 in das wampbinphpphp5.3.0ext-Verzeichnis herunter Öffnen Sie den php_apc des PHP Erweiterung und öffnen Sie php.ini, suchen Sie extension=php_apc.dll und fügen Sie hinzu

apc.enabled=0
apc.shm_segments=0
apc.enable_cli=0

Wenn sich im Stammverzeichnis ein Cache-Ordner befindet, löschen Sie den Inhalt im Cache

Erstellen Sie ein Programm

cmd-Eingabe

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    ===========清除一次缓存

Aktionsaktion und Zugriffsrechte

Erstellen Sie eine opVotePluginVoteActions..php-Datei im PluginsopVotePluginlibactions-Verzeichnis. Schreiben Sie die Klasse class opVotePluginVoteActions sfActions{}

in die Datei und erben Sie dann die gerade geschriebene Klasse in der Datei opVotePluginappspc_frontendmodulesvoteactions..php. voteActions PluginVoteActions{}

Nicht nur die Computerfront Im Ordner pc_frontend können alle Front- und Backmodulaktionen für mobile Computer unter opVotePluginapps diese Klasse erben, um eine Klasse zum Verwalten mehrerer Frontends zu implementieren.

Erstellen Sie die Datei „pluginsopVotePluginappspc_frontendmodulesvoteconfigsecurity.yml“. Geben Sie all:

is_secure: on

credentials : SNSMember

Gibt an, dass für dieses Modul eine Authentifizierung erforderlich ist und nur Mitglieder darauf zugreifen können Plugins erstellenopVotePluginappspc_frontendmodulesvotetemplatesshowSuccess .php

Führen Sie den Befehl php symfony einmal aus. cc

Erstellte Datenbanktabelle

Erstellen Sie die Datei „plugins/opVotePlugin/config/doctrine/schema.yml“. Geben Sie

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 }

ein, um drei Tabellen zu erstellen: vote_question, vote_question_option und vote_answer. Die Beziehungen stellen die Einrichtung von Fremdschlüsselbeziehungen dar.

Führen Sie zu diesem Zeitpunkt den Befehl php symfony openpne:install aus, um openPNE neu zu installieren und die ersten drei Tabellen zu erstellen. Führen Sie dann php symfony doctrine:build --all --and- aus. laden, um die Daten erneut einzufügen

Routing-Regeln

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

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

Eingabe

vote:
: opVotePluginFrontendRouteCollection
  options: { name: vote }

Geben Sie an, welche Klasse Routing-Regeln festlegen soll


Geben Sie den Befehl php symfony cc ein

Geben Sie den Befehl php symfony app:routes pc_frontend ein, um zu überprüfen, ob das Routing erfolgreich eingestellt wurde

Sie können auch die opVotePluginFrontendCollection..php und erstellen Routing.yml-Dateien, auf die über die Standardroute zugegriffen wird.

Empfohlenes Lernen:

php-Video-Tutorial

Das obige ist der detaillierte Inhalt vonSo erstellen Sie ein Projekt mit openPNE. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:cnblogs.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen