谁都有过迷茫期,下面是我开始PHP开发中,不断改变的代码组织方式。php
初期:全部代码一股脑控制器controllernginx
中期:业务代码抽象一部分到模型层modelgit
后期:业务代码控制器,模型层只写db的curd方法github
汲取之前的码码体验,我目前的码码方式作了以下改变:web
度的把握,凡事都是灵活的,也不都是这样,认为足够简单的逻辑仍是“业务代码控制器,模型层只写db的curd方法”。json
依赖注入容器很重要,配上懒加载,减小代码,解耦依赖,提高性能设计模式
前置中间件注入咱们依赖的类restful
首先咱们须要利用composer来拆分和组件化咱们的代码,业务中简单的composer require便可复用咱们的业务代码。可是有一个问题若是使用 https://packagist.org 须要把代码开源出去,和业务无关的工具类还好说,并且开源仍是个好事情,可是和业务相关比较敏感的组件就有问题了,因此咱们须要搭建一个私有的packagist, 私有packagist示例:http://packagist.tigerb.cn/,具体搭建步骤见文末。mvc
目前让我接手一个项目我会从以下几个方面去组织个人php代码:composer
控制器暴露资源
业务代码到逻辑层(也不必定)
模型层只写db的curd方法
不足还有不少,在这里只是把本身的想法分享出来,好的你们能够借鉴,很差的但愿你们多多指正。
THX~
Satis搭建私有的packagist过程,安装步骤以下:
step 1:
composer create-project composer/satis:dev-master --keep-vcs && cd satis
step 2:
touch satis.json
satis.json文件的内容以下
{ "name": "packaglist-tigerb", "homepage": "http://packaglist.tigerb.cn", "repositories": [ { "type": "vcs", "url": "http://github.com/tigerb/easy-mipush" }, { "type": "vcs", "url": "http://github.com/easy-framework/easy-router"} ], "require-all": true }
step 3:
php bin/satis build ./satis.json <你的web servser项目目录,好比个人路径/mnt/www>
step 4:
配置nginx server 配置,重启nginx便可
简单的配置composer.json便可,增长新的repositories地址,具体示例配置以下:
{ "name": "tigerb/test", "authors": [ { "name": "TIGERB", "email": "tigerbcode@gmail.com" } ], "repositories":[ {"type":"composer", "url": "http://packagist.tigerb.cn"} ], "config": { "secure-http": false }, "require": { "tigerb/easy-mipush": "^0.1.0" } }
扫面下方二维码关注个人技术公众号,及时为你们推送个人原创技术分享