1. 程式人生 > >現代php編程

現代php編程

管理 mono fault 區別 logs 函數式編程 mon 模式 面向

  • 自動加載__autolaod和spl_autoload_register()

    自動加載就是指如果找不到某個類如何處理的方式,具體可參見此文,可以說spl_autoload_register是更加高級,更加靈活的加載方式。

  • 命名空間

    C++裏很早就引入了命名空間來解決命名沖突,隨著php的工程量逐漸增多,在php5.3也引入了命名空間的機制。有了自動加載和命名空間之後,以此為基礎上才有了現在php社區的流行的composer包管理器。不得不說composer是個非常出色的包管理器,比nodejs的npm,和python的pip好多了。關於命名空間可參考此文。

  • 接口

    面向契約編程
  • trait

    公用的代碼片段,組合模式,組合優於繼承的思想

  • 延遲綁定

    static和self的區別
  • 叠代器和生成器

  • 匿名函數和閉包

  • 日誌

    推薦使用monolog配合rsyslog,或者第三方日誌服務

  • 寫時復制 copy on write

    $foo['love'] = 1;
    $bar  = &$foo['love'];
    $tipi = $foo;
    $tipi['love'] = '2';
    echo $foo['love'];//輸出2

    $bar變量的引用操作,將$foo[‘love‘]汙染變成了引用,從而Zend沒有 對$tipi[‘love‘]的修改產生內存的復制分離。

  • 可變參數
  • php監控性能調優apm
  • [ ] 反射

  • PSR PHP業界規範
  • PHP優化的經驗
  • PHP函數式編程
  • [] 方法重載

現代php編程