- 
                Notifications
    
You must be signed in to change notification settings  - Fork 116
 
Learn Pi Engine Step By Step
        chunhuili edited this page Aug 13, 2014 
        ·
        36 revisions
      
    - 基本组成元素card->list->borad
- Board 是容纳 List 的地方,在上面可以放置几乎无数个 List,而且 List 能够经由鼠标拖动,相互调换位置;
 - List 是容纳 Card 的地方,Crad 可以经由鼠标拖动,拖放到不同的 List 中去。
 - Card 是最基本的组成元素,可以称为 “任务卡片”。因为是记录和任务有关信息的地方
 
 - 拖动调整工作流程
 - 在trello中没有delete的概念,所有的删除就是archive起来,日后还可以找到。
 - 每个成员对 Trello 中的任务所作出的任何改动都会记录下来,所以项目的负责人可以根据团队的进度进行统筹安排
 
- 注册github帐号,登录
 - 找到pi框架,fork Pi Engine,地址
 - 在github上的Pi Engine的首页的右上方都会看到三个标识
 - Watch:watch 的作用是关注,目的是更新的时候,你可以收到通知。
 - Star:star 的作用是收藏,目的是方便以后查找。 (或者可以这样理解)一种更新的方式管理你所感兴趣的仓库的记录,任何之前预览过的仓库都能在其页面中找到
 - Fork:fork 的作用是参与,目的是你增加新的内容,然后 Pull Request,原作者会考虑把你的修改和原作者原来的内容合并。 (或者可以这样理解)最重要的功能之一,克隆别人仓库的代码到自己的项目中。可以作为子模块的形式使用,或二次开发。
 
- 安装wamp5.4以上的版本,php环境使用phpstorm。
 - 将fork的pi代码复制我本地,放到www文件下
 - 运行localhost,开始安装pi,配置好数据库和登录信息等
 - 开启Apache 里边的rewrite_module重启Apache(基本上可以安装上基本的框架)
 - 登录后台,熟悉后台的布局,功能等
 - 点击模块,在可用下手动安装各个模块,熟悉其功能。
 - 对应了解各个模块的代码
 
- 准备:
- 了解pi框架下各个模块的文件结构,每个模块下都包含那些文件夹和文件,可以仿照demo来书写你的模块
 - 参考文档
 - 必须了解这个文档
 
 
- 目标:学会按Pi Engine规范开发模块。
 - 方式:分步完成一个简单的Pi模块。
 
Checklist
- 在usr的module中新建一个文件夹
 - 按照其他模块的目录格式去配置你的module.php文件,
 - meta的三个配置东西是必写的title version licence,其他都是可选的。 (参考文档里的Configuration file写的很清楚)
 
- 使用正确的命名空间,引用正确的文件。
 - 在front文件间里建立controller文件,assign一个值到模版中的front,
 - 在模版中的front建立.phtml文件。接收controller传过来的值。
 
- 参照demo里的实例,添加自己的form表单。
 - 用到的命名空间和你引用的文件的路径必须是正确的。在controller里写好你的方法,
 - 在控制器里写好你的方法后在相应的template里写你的.phtml文件。
 
- 在sql文件夹下建立自己的数据库,在安装的时候就会出现一个(前缀+模块名+sql文件中名字)的一张表。
 - 在form文件夹下书写form文件。配置信息与数据库中对应起来。
 - 在controller中进行接收处理,分配给template
 
- 这个在后台显示那就需要用的admin里controller,
 - 还是参照demo,与数据库连接起来。Foreach循环的时候写上自己的数据。
 - 写好方法后在到相应的.phtml文件接收数据进行输出。
 
- 这个要是实现的功能就是通过后台配置中的启用或禁用的手动提交,使得前台呈现给用户的某些内容是否显示
 - 目的:了解config文件的功能。
 
- 主要使用config.php文件,所写的配置数据会在后台直接显示出来。
 - 查看doc中的README-config.md文件。了解如何调用config的配置信息
 - 在你第五步的form文件夹下得到config配置文件的数据。然后在显示输入框的地方添加判断条件。
 
- I18n也就是“国际化”,根据需要把软件界面和文档翻译成不同国家、地区的语言版本。
 - 首先在写的过程中用特定的格式书写你要输出的信息(参考Pi中doc里边的readme-i18n)
 - 关联的页面是locale文件夹,这个文件夹主要用于语言的本地化
 - 每个po文件都会对应一个mo文件。Po文件是从当前模块提取,mo文件是通过poedit生成的。
 - 如何使用Poedit
 
- 建立nav.php,设置里边的front和admin。
 - 每个label对应的名字都会在导航的下拉菜单显示
 - Controller和action都是对应在你的控制器中的方法(对应的显示)
 - Front和admin里边数组的名字可以随便起,不要重复就好了
 
- 建立block.php,返回数组的名字就是你phtml文件的名字
 - 在src下建立Block文件夹,里边建立Block.php的类文件
 - 在后台设置,点击页面,开始进行装扮。
 - 将你编写的区块拖拽到想要显示的地方,然后提交
 
- 建立page.php,返回的数组指定的是front。
 - 数组中的字段对应的是标题,控制器,方法,缓存时间…
 - Block的设置是装扮出现的关键,设置为1就是允许你装扮这个模块,设置为0则不允许
 - 写好页面后,重新安装模块就可以去装扮你的模块,提交后在就在前台显示了
 
- 建立permission.php,返回的数组依然是front
 - 建立好的区块是会在权限下显示的,这时就可以在后台操作页面了
 - 白色表示的是关闭权限,绿色是分配权限。
 - 在分配权限的时候要注意你在页面设置中的缓存时间
 
- 了解观察者模式(观察者模式解除了模块间的耦合,让耦合的双方都依赖于抽象,而不是依赖具体。从而使得各自的变化都不会影响另一边的变化)
 - 在本模块下的src里的api文件中建立event.php的类文件,这个类文件书写的方法就是你要观察的信息。
 - 建立event.php,调用类中的方法。这个页面在后台的事件中直接显示。
 - 可参考system和demo下的event事件触发
 
- Note:
- 引用的文件路径和命名空间必须正确。
 - 每一步的功能可以参考其他模块实现的方式
 - 注意页面的缓存时间
 
 
