作者:
GALINE (天真可愛CQD)
2016-05-26 12:21:38※ 引述《pracinverse (改)》之銘言:
: 最近看到PHP的一種用法就是在a.php的最後一行才requrie(b.php);
: 看起來是因為前人想要在a.php裡面先做一些處理後,再去用到b.php的功能,
: 而這種很不OO的方式來做code reuse實在讓我覺得不太習慣,
: 一來一般programming language都是在最一開始去把需用到的其他file include進來,
: 二來要code reuse應該要包成class才能達到封裝的目的。
: 這種"在a.php的最後一行requrie(b.php);"的用法
: 在PHP裡面算是很常見的用法嗎??
: 它算不算一種不好的practice呢?
這很爛,但當年寫出這種 code 的人不是傻,是沒有招可以出
PHP 到 2009 年才有 namespace,autoloading 的規範 PSR-0 是 2010 還 2011 的事
2012 年才有 composer 這個套件管理系統(以前有pear,但得動到系統...)
在那之前,你就算 OO 了你也很難組織你的 code 該怎麼放或啥時載入
而人家寫好的 lib 你得透過一連串的 include 地獄來載入
所以會看到一些現在看起來莫名其妙的做法,例如
- include 一個會 include 幾十個檔案的 php
(不容易有效的載入 lib,於是搞出個類似 .h 檔的東西...)
- 滿天飛的 global
(沒辦法用 namespace 去區隔 class,不如全部先在一個地方先 new 出來備用)
- 為了確保邏輯重用,每個地方都 include 同一個 php
(不知道怎麼 call 同一個 class 的某個 function,或是沒有現代 framework 輔助)
過去 PHP 名聲臭是有原因的,人家已經在21世紀了,PHP 還在打二戰...
composer 出現之後沒幾年,PHP 已經脫胎換骨,變成符合 21 水準的超級 PHP。
然而程式碼被汰換的速度跟不上這超英趕美大躍進
除非能短短兩三年就把整間公司的 code 全部打掉重來...
這是一場 PHP 的文化大革命
但就算php比較符合現在水準了,還是很多人看不起他
作者:
Mtcat (山地貓)
2016-05-26 12:34:00推推
那要學現代PHP 除了那本歐來梨的書之外 還有什麼推薦的資源嗎? 書或者網路tutorial
作者:
Argos (Big doge is watching u)
2016-05-26 13:01:00作者:
GALINE (天真可愛CQD)
2016-05-26 13:05:00阿,編輯放太久沒存檔結果貼了一樣的東西....XDDD
作者:
Argos (Big doge is watching u)
2016-05-26 13:08:00阿 重複貼XD
作者:
johnny94 (32767)
2016-05-26 14:14:00php 真的很妙,一個脫胎換骨的概念
作者:
LaPass (LaPass)
2016-05-26 14:21:00php的這種載入機制我覺得跟C C++很像....
作者:
GALINE (天真可愛CQD)
2016-05-26 14:28:00要我說的話抄 java 抄的比較兇。不過目前對於掛在namespace 下面的 function 沒有優雅的解決方案...
作者: PoloHuang (黃保羅) 2016-05-26 15:04:00
Modern PHP不錯
作者:
LaPass (LaPass)
2016-05-26 15:30:00GALINE是指JSP嗎?JAVA的ClassLoader的機制跟PHP完全不一樣啊....JSP才有require之類的東東
作者:
GALINE (天真可愛CQD)
2016-05-26 15:47:00是說 PSR-0 跟 PSR-4
作者:
Luos (Soul)
2016-05-26 16:35:00原來今年沒用php也進步了
作者: RedMapleWing (闇夜 楓) 2016-05-26 17:10:00
兩個連結我很下意識的點了第二個是…
作者:
fouring (香菇)
2016-05-26 21:01:00後端不會PHP是不是不行啊?
作者:
y3k (激流を制するは静水)
2016-05-26 21:21:00就算現在 PHP一樣很容易寫出讓人看了覺得難過的東西前面的包袱太重了
搭配FRAMEWORK就還好了吧 PHP的框架也進步很多呀
作者:
sabiya (別赤腳走路)
2016-05-26 22:36:00作者推的這兩聯結的作者都是Josh Lockhart,我目前也有使他開發的micro web service framework,叫Slim Framework是真的蠻好用的,推薦給需要撰寫restful web api的開發者
作者:
alog (A肉哥)
2016-05-26 22:44:00現在有lumen
作者:
angusyu (〒△〒)
2016-05-27 08:43:00清新好文
作者:
Ekmund (是一隻小叔)
2016-05-27 08:54:00文化大革命是失敗的吧=口=
作者:
Argos (Big doge is watching u)
2016-05-27 09:38:00革命當然尚未成功 PHP同志們仍需努力 團結奮鬥救PHP
不同的時空背景有不同的作法啊,也不能說 include 一堆檔案就是錯誤的寫法吧?畢竟現在 php 的 autoload 也是在 __autoload 做 include ,只是不去翻看不到而以。當然 autoload 是優雅很多沒錯啦!
作者:
chan15 (ChaN)
2016-05-28 15:40:00推超級 PHP XD
PHPConf Taiwan 2016會請到現代PHP的作者,歡迎來聽!
作者:
rickysu (Ricky)
2016-06-01 09:31:00幫推 PHPConf Taiwan 2016...