Re: [請益] PHP不需要include就能用別的php檔的類別?

作者: tkdmaf (皮皮快跑)   2017-08-09 14:27:56
: 推 BIAO: 首先謝謝t大的解釋,那麼我確認一下您說的... 08/09 13:41
: → BIAO: 那些子類別所在的php檔及父類別的php檔都是被另外的php檔所 08/09 13:42
: → BIAO: 呼叫的,這樣子不曉得我理解有沒有錯誤呢? 謝謝。 08/09 13:43
: → BIAO: 我稱之為「另外的php檔」是因為PHP好像沒有所謂的主程式? 08/09 13:44
: → BIAO: 應該說...我從書上看到的內容得到資訊是網頁沒有一定要從 08/09 13:45
: → BIAO: 哪一個php檔來當做入口.只要知道檔名輸入就能跑出頁面. 08/09 13:46
: → BIAO: 再次謝謝您的熱心協助^^ 08/09 13:46
: 推 BIAO: 另外想再請問一下,除了您說的autoload的方式外,不曉得 08/09 13:51
: → BIAO: Apache有沒有可能做設定,讓每個網頁都能自動識別某個Class 08/09 13:51
: → BIAO: ,有點像是將該Class的路徑指定成為PHP內建Library的形式XD 08/09 13:51
: → BIAO: 蠻異想天開的,只是想和前輩再釐清一點狀況,感恩:) 08/09 13:52
只要知道檔名就能跑出頁面是以前的做法。
現在基本上只會有一個唯一入口的檔案會放在開放權限的資料夾。
其他的檔案所放的資料夾都是不允許外部直接訪問的。
不然可以隨意訪問就有可能被隨意注入不當的內容。
然後都會基於路由參數來決定要呼叫執行的class是那一隻。
另外,class的作用是基於php編譯器。
這跟apache沒有任何關係吧。
(看看Laravel的php artisan serve,不需要apache也能執行php環境)
而且autoload的目的是在於有需要才去做載入。
如果全部的class都要識別,甚至是預載入,那會造成資源的浪費。
因為有可能你載入了結果卻沒使用他。
php之所謂沒有一定的入口,就是原本的鬆散結構。
現在都會基於唯一的index.php做為整個功能的入口。
所有的功能都必須走過這個index.php
再經由內部的route去判別路由參數來決定要跑的controller(class)。
作者: BIAO (超越自己)   2017-08-09 14:33:00
太棒啦!講了許多專有名詞,謝謝您不吝賜教~獲益良多。我會去研究您所說的項目,尤其是單一入口 :)
作者: kroutony (bingbing)   2017-08-17 23:51:00
mvc,framework,modern php,autoloader,composer,psr-4

Links booklink

Contact Us: admin [ a t ] ucptt.com