Skip to content

Learn Pi Engine Step By Step

chunhuili edited this page Aug 8, 2014 · 36 revisions

准备:

1)Trello(软件开发的管理工具)
  • 基本组成元素card->list->borad
    • Board 是容纳 List 的地方,在上面可以放置几乎无数个 List,而且 List 能够经由鼠标拖动,相互调换位置;
    • List 是容纳 Card 的地方,Crad 可以经由鼠标拖动,拖放到不同的 List 中去。
    • Card 是最基本的组成元素,可以称为 “任务卡片”。因为是记录和任务有关信息的地方
  • 拖动调整工作流程
  • 在trello中没有delete的概念,所有的删除就是archive起来,日后还可以找到。
  • 每个成员对 Trello 中的任务所作出的任何改动都会记录下来,所以项目的负责人可以根据团队的进度进行统筹安排
2)Github(版本控制器)
  • 注册github帐号,登录
  • 找到pi框架,fork Pi Engine,地址
  • 在github上的Pi Engine的首页的右上方都会看到三个标识
  • Watch:watch 的作用是关注,目的是更新的时候,你可以收到通知。
  • Star:star 的作用是收藏,目的是方便以后查找。 (或者可以这样理解)一种更新的方式管理你所感兴趣的仓库的记录,任何之前预览过的仓库都能在其页面中找到
  • Fork:fork 的作用是参与,目的是你增加新的内容,然后 Pull Request,原作者会考虑把你的修改和原作者原来的内容合并。 (或者可以这样理解)最重要的功能之一,克隆别人仓库的代码到自己的项目中。可以作为子模块的形式使用,或二次开发。

一、安装

  1. 安装wamp5.4以上的版本,php环境使用phpstorm。
  2. 将fork的pi代码复制我本地,放到www文件下
  3. 运行localhost,开始安装pi,配置好数据库和登录信息等
  4. 开启Apache 里边的rewrite_module重启Apache(基本上可以安装上基本的框架)
  5. 登录后台,熟悉后台的布局,功能等
  6. 点击模块,在可用下手动安装各个模块,熟悉其功能。
  7. 对应了解各个模块的代码

二、开始书写分布模块

  • 准备:
    • 了解pi框架下各个模块的文件结构,每个模块下都包含那些文件夹和文件,可以仿照demo来书写你的模块
    • 参考文档
    • 必须了解这个文档
1)Description
  • 目标:学会按Pi Engine规范开发模块。
  • 方式:分步完成一个简单的Pi模块。

Checklist

((-------------------------- 模块分步功能如下 -------------------------))
2)写一个空白模块,要求可安装、可卸载:V 0.1
  1. 在usr的module中新建一个文件夹
  2. 按照其他模块的目录格式去配置你的module.php文件,
  3. meta的三个配置东西是必写的title version licence,其他都是可选的。 (参考文档里的Configuration file写的很清楚)
3)输出 "Hello world!",要求用Controller,模板:V 0.2
  1. 使用正确的命名空间,引用正确的文件。
  2. 在front文件间里建立controller文件,assign一个值到模版中的front,
  3. 在模版中的front建立.phtml文件。接收controller传过来的值。
4)输出“Contact us”表单,要求用Form类:V 0.3
  1. 参照demo里的实例,添加自己的form表单。
  2. 用到的命名空间和你引用的文件的路径必须是正确的。在controller里写好你的方法,
  3. 在控制器里写好你的方法后在相应的template里写你的.phtml文件。
5)记录用户提交的联系表单内容,要求用数据库:V 0.4
  1. 在sql文件夹下建立自己的数据库,在安装的时候就会出现一个(前缀+模块名+sql文件中名字)的一张表。
  2. 在form文件夹下书写form文件。配置信息与数据库中对应起来。
  3. 在controller中进行接收处理,分配给template
6)在后台显示所有记录列表,要求用admin controller和模板:V 0.5
  1. 这个在后台显示那就需要用的admin里controller,
  2. 还是参照demo,与数据库连接起来。Foreach循环的时候写上自己的数据。
  3. 写好方法后在到相应的.phtml文件接收数据进行输出。
7)添加模块配置,控制是否在用户提交后显示的内容;如果是,则显示:V 0.6
  • 这个要是实现的功能就是通过后台启用或禁用的手动提交,让前台的form表单的个个输入框是够显示
  • 目的:了解config文件的功能。
  1. 主要使用config.php文件,所写的配置数据会在后台直接显示出来。
  2. 查看doc中的README-config.md文件。了解如何调用config的配置信息
  3. 在你第五步的form文件夹下得到config配置文件的数据。然后在显示输入框的地方添加判断条件。
8)添加i18n支持,学习翻译相关的函数,学习poedit工具,制作并翻译内容:V 0.7
  1. I18n也就是“国际化”,根据需要把软件界面和文档翻译成不同国家、地区的语言版本。
  2. 首先在写的过程中用特定的格式书写你要输出的信息(参考Pi中doc里边的readme-i18n)
  3. 关联的页面是locale文件夹,这个文件夹主要用于语言的本地化
  4. 每个po文件都会对应一个mo文件。Po文件是从当前模块提取,mo文件是通过poedit生成的。
  5. 如何使用Poedit
9)设置导航,点击导航对应其模块的一个页面
  1. 建立nav.php,设置里边的front和admin。
  2. 每个label对应的名字都会在导航的下拉菜单显示
  3. Controller和action都是对应在你的控制器中的方法(对应的显示)
  4. Front和admin里边数组的名字可以随便起,不要重复就好了
10)设置区块,可以通过后台拖拽而在不同的页面中显示
  1. 建立block.php,返回数组的名字就是你phtml文件的名字
  2. 在src下建立Block文件夹,里边建立Block.php的类文件
  3. 在后台设置,点击页面,开始进行装扮。
  4. 将你编写的区块拖拽到想要显示的地方,然后提交
11)模块页面的添加
  1. 建立page.php,返回的数组指定的是front。
  2. 数组中的字段对应的是标题,控制器,方法,缓存时间…
  3. Block的设置是装扮出现的关键,设置为1就是允许你装扮这个模块,设置为0则不允许
  4. 写好页面后,重新安装模块就可以去装扮你的模块,提交后在就在前台显示了
12)添加权限
  1. 建立permission.php,返回的数组依然是front
  2. 建立好的区块是会在权限下显示的,这时就可以在后台操作页面了
  3. 白色表示的是关闭权限,绿色是分配权限。
  4. 在分配权限的时候要注意你在页面设置中的缓存时间

  • Note:
    • 引用的文件路径和命名空间必须正确。
    • 每一步的功能可以参考其他模块实现的方式
    • 注意页面的缓存时间
Clone this wiki locally