热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

openPNE怎么创建项目

这篇文章主要讲解了“openPNE怎么创建项目”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“open

这篇文章主要讲解了“openPNE怎么创建项目”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“openPNE怎么创建项目”吧!

不知道你们有没有用过openPNE,其实我们可以使用openPNE创建过项目。今天我们就来介绍一下openPNE创建过项目的方法,有需要的可以参考参考。

使在cmd命令符下找到php命令
打开“我的电脑”->“属性”->“高级”->“环境变量”->“系统变量”->“path”,编辑其值,在前面

增加下面的路径地址:

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

将php.ini复制到C:\Windows 目录下

symfony简单的建程序

将下载好的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下载到wamp\bin\php\php5.3.0\ext目录下

打开php扩展的php_apc,打开php.ini,找到extension=php_apc.dll并在下一行添加

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

如果根目录有cache文件夹把cache中的内容清空

创建一个程序

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

action动作及访问权限

在plugins\opVotePlugin\lib\actions目录下创建一个opVotePluginVoteActions..php文件

文件中写类class opVotePluginVoteActions  sfActions{}

然后在opVotePlugin\apps\pc_frontend\modules\vote\actions\actions..php文件中的类继承刚才写的类

voteActions  opVotePluginVoteActions{}

不仅电脑前台pc_frontend文件夹内,在opVotePlugin\apps下的所有手机电脑前后台模块动作都可以继承这个类,实现一个类管理多个前端

建立plugins\opVotePlugin\apps\pc_frontend\modules\vote\config\security.yml文件然后输入

all:

is_secure: on

credentials: SNSMember

表示此模块需要验证,只有会员才能访问

在opVotePluginVoteActions类中写一个动作

executeShow(sfWebRequest ){}

然后创建plugins\opVotePlugin\apps\pc_frontend\modules\vote\templates\showSuccess.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三个表其中的relations表示设立外键关联

此时执行命令php symfony openpne:install将重新安装openPNE并创建前面三张表

之后再执行一次php symfony doctrine:build --all --and-load 重新插入数据

路由规则

创建plugins/opVotePlugin/lib/routing/opVotePluginFrontendCollection..php

输入

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

创建plugins/opVotePlugin/apps/pc_frontend/config/routing.yml

输入

vote:
: opVotePluginFrontendRouteCollection
  options: { name: vote }

指定由哪个类来设定路由规则

输入命令php symfony cc

输入命令php symfony app:routes pc_frontend 查看路由是否设定成功

不创建opVotePluginFrontendCollection..php与routing.yml文件也可,将按默认路由访问

感谢各位的阅读,以上就是“openPNE怎么创建项目”的内容了,经过本文的学习后,相信大家对openPNE怎么创建项目这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是编程笔记,小编将为大家推送更多相关知识点的文章,欢迎关注!


推荐阅读
  • 本文介绍了在Windows环境下如何配置php+apache环境,包括下载php7和apache2.4、安装vc2015运行时环境、启动php7和apache2.4等步骤。希望对需要搭建php7环境的读者有一定的参考价值。摘要长度为169字。 ... [详细]
  • 图解redis的持久化存储机制RDB和AOF的原理和优缺点
    本文通过图解的方式介绍了redis的持久化存储机制RDB和AOF的原理和优缺点。RDB是将redis内存中的数据保存为快照文件,恢复速度较快但不支持拉链式快照。AOF是将操作日志保存到磁盘,实时存储数据但恢复速度较慢。文章详细分析了两种机制的优缺点,帮助读者更好地理解redis的持久化存储策略。 ... [详细]
  • 一句话解决高并发的核心原则
    本文介绍了解决高并发的核心原则,即将用户访问请求尽量往前推,避免访问CDN、静态服务器、动态服务器、数据库和存储,从而实现高性能、高并发、高可扩展的网站架构。同时提到了Google的成功案例,以及适用于千万级别PV站和亿级PV网站的架构层次。 ... [详细]
  • 篇首语:本文由编程笔记#小编为大家整理,主要介绍了软件测试知识点之数据库压力测试方法小结相关的知识,希望对你有一定的参考价值。 ... [详细]
  • 这是原文链接:sendingformdata许多情况下,我们使用表单发送数据到服务器。服务器处理数据并返回响应给用户。这看起来很简单,但是 ... [详细]
  • 本文介绍了Java工具类库Hutool,该工具包封装了对文件、流、加密解密、转码、正则、线程、XML等JDK方法的封装,并提供了各种Util工具类。同时,还介绍了Hutool的组件,包括动态代理、布隆过滤、缓存、定时任务等功能。该工具包可以简化Java代码,提高开发效率。 ... [详细]
  • [译]技术公司十年经验的职场生涯回顾
    本文是一位在技术公司工作十年的职场人士对自己职业生涯的总结回顾。她的职业规划与众不同,令人深思又有趣。其中涉及到的内容有机器学习、创新创业以及引用了女性主义者在TED演讲中的部分讲义。文章表达了对职业生涯的愿望和希望,认为人类有能力不断改善自己。 ... [详细]
  • 本文详细介绍了MysqlDump和mysqldump进行全库备份的相关知识,包括备份命令的使用方法、my.cnf配置文件的设置、binlog日志的位置指定、增量恢复的方式以及适用于innodb引擎和myisam引擎的备份方法。对于需要进行数据库备份的用户来说,本文提供了一些有价值的参考内容。 ... [详细]
  • 本文介绍了Hyperledger Fabric外部链码构建与运行的相关知识,包括在Hyperledger Fabric 2.0版本之前链码构建和运行的困难性,外部构建模式的实现原理以及外部构建和运行API的使用方法。通过本文的介绍,读者可以了解到如何利用外部构建和运行的方式来实现链码的构建和运行,并且不再受限于特定的语言和部署环境。 ... [详细]
  • XML介绍与使用的概述及标签规则
    本文介绍了XML的基本概念和用途,包括XML的可扩展性和标签的自定义特性。同时还详细解释了XML标签的规则,包括标签的尖括号和合法标识符的组成,标签必须成对出现的原则以及特殊标签的使用方法。通过本文的阅读,读者可以对XML的基本知识有一个全面的了解。 ... [详细]
  • 分享2款网站程序源码/主题等后门检测工具
    本文介绍了2款用于检测网站程序源码和主题中是否存在后门的工具,分别是WebShellkiller和D盾_Web查杀。WebShellkiller是一款支持webshell和暗链扫描的工具,采用多重检测引擎和智能检测模型,能够更精准地检测出已知和未知的后门文件。D盾_Web查杀则使用自行研发的代码分析引擎,能够分析更为隐藏的WebShell后门行为。 ... [详细]
  • Java在运行已编译完成的类时,是通过java虚拟机来装载和执行的,java虚拟机通过操作系统命令JAVA_HOMEbinjava–option来启 ... [详细]
  • 本文讨论了在手机移动端如何使用HTML5和JavaScript实现视频上传并压缩视频质量,或者降低手机摄像头拍摄质量的问题。作者指出HTML5和JavaScript无法直接压缩视频,只能通过将视频传送到服务器端由后端进行压缩。对于控制相机拍摄质量,只有使用JAVA编写Android客户端才能实现压缩。此外,作者还解释了在交作业时使用zip格式压缩包导致CSS文件和图片音乐丢失的原因,并提供了解决方法。最后,作者还介绍了一个用于处理图片的类,可以实现图片剪裁处理和生成缩略图的功能。 ... [详细]
  • 本文介绍了Redis中RDB文件和AOF文件的保存和还原机制。RDB文件用于保存和还原Redis服务器所有数据库中的键值对数据,SAVE命令和BGSAVE命令分别用于阻塞服务器和由子进程执行保存操作。同时执行SAVE命令和BGSAVE命令,以及同时执行两个BGSAVE命令都会产生竞争条件。服务器会保存所有用save选项设置的保存条件,当满足任意一个保存条件时,服务器会自动执行BGSAVE命令。此外,还介绍了RDB文件和AOF文件在操作方面的冲突以及同时执行大量磁盘写入操作的不良影响。 ... [详细]
  • 单页面应用 VS 多页面应用的区别和适用场景
    本文主要介绍了单页面应用(SPA)和多页面应用(MPA)的区别和适用场景。单页面应用只有一个主页面,所有内容都包含在主页面中,页面切换快但需要做相关的调优;多页面应用有多个独立的页面,每个页面都要加载相关资源,页面切换慢但适用于对SEO要求较高的应用。文章还提到了两者在资源加载、过渡动画、路由模式和数据传递方面的差异。 ... [详细]
author-avatar
wang静的天空
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有