这两年多我写 PHP 业务代码的方式是如何进化的

曾今

谁都有过迷茫期,下面是我开始PHP开发中,不断改变的代码组织方式。

当下

汲取以前的码码体验,我目前的码码方式做了如下改变:

更合理的分层

度的把握,凡事都是灵活的,也不都是这样,认为足够简单的逻辑还是“业务代码控制器,模型层只写db的curd方法”。

依赖注入,懒加载,前置中间件

组件化代码

首先我们需要利用composer来拆分和组件化我们的代码,业务中简单的 composer require 即可复用我们的业务代码。但是有一个问题如果使用(https://packagist.org需要把代码开源出去,和业务无关的工具类还好说,而且开源还是个好事情,但是和业务相关比较敏感的组件就有问题了,所以我们需要搭建一个私有的packagist, 私有packagist示例:http://packagist.tigerb.cn/,具体搭建步骤见文末。

总结

目前让我接手一个项目我会从如下几个方面去组织我的php代码:

结语

不足还有很多,在这里只是把自己的想法分享出来,好的大家可以借鉴,不好的希望大家多多指正。

THX~

附录

Satis搭建私有的packagist过程,安装步骤如下:

step 1:

composer create-project composer/satis:dev-master --keep-vcs && cd satis

step 2:

touch satis.json

satis.json文件的内容如下

  1. {

  2. "name""packaglist-tigerb",

  3. "homepage""http://packaglist.tigerb.cn",

  4. "repositories": [

  5. "type""vcs""url""http://github.com/tigerb/easy-mipush"},

  6. "type""vcs""url""http://github.com/easy-framework/easy-router"}

  7. ],

  8. "require-all"true

  9. }

step 3:

php bin/satis build ./satis.json <你的web servser项目目录,比如我的路径/mnt/www>

step 4:

配置nginx server 配置,重启nginx即可

如何使用?

简单的配置composer.json即可,增加新的repositories地址,具体示例配置如下:

  1. {

  2. "name""tigerb/test",

  3. "authors": [

  4. {

  5. "name""TIGERB",

  6. "email""tigerbcode@gmail.com"

  7. }

  8. ],

  9. "repositories":[

  10. {"type":"composer""url""http://packagist.tigerb.cn"}

  11. ],

  12. "config": {

  13. "secure-http"false

  14. },

  15. "require": {

  16. "tigerb/easy-mipush""^0.1.0"

  17. }

  18. }

PHPer、Laravel 面试可能会遇到的问题及答案

八年 phper 的高级工程师面试之路

2017 年 PHP 程序员未来路在何方


联系我们

如有问题请联系我们,我们7*24小时竭诚为您服务