誰都有過迷茫期,下面是我開始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" } }
掃面下方二維碼關注個人技術公衆號,及時爲你們推送個人原創技術分享