Re: [请益] php code在最后一行才require

楼主: 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 的文化大革命
作者: crossdunk (推嘘自如)   2016-05-26 12:33:00
但就算php比较符合现在水准了,还是很多人看不起他
作者: Mtcat (山地猫)   2016-05-26 12:34:00
推推
作者: dreamnook (亚龙)   2016-05-26 12:35:00
资讯推话说为啥不能支持正太控(误
作者: comesuck (艾米德)   2016-05-26 12:43:00
看来我也要开始摸一下
作者: myhome6206 (Rice)   2016-05-26 12:56:00
那要学现代PHP 除了那本欧来梨的书之外 还有什么推荐的资源吗? 书或者网络tutorial
作者: Argos (Big doge is watching u)   2016-05-26 13:01:00
楼主: GALINE (天真可爱CQD)   2016-05-26 13:05:00
阿,编辑放太久没存盘结果贴了一样的东西....XDDD
作者: dreamnook (亚龙)   2016-05-26 13:07:00
推书本 book了:D
作者: Argos (Big doge is watching u)   2016-05-26 13:08:00
阿 重复贴XD
作者: johnny94 (32767)   2016-05-26 14:14:00
php 真的很妙,一个脱胎换骨的概念
作者: LaPass (LaPass)   2016-05-26 14:21:00
php的这种加载机制我觉得跟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:00
GALINE是指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
两个连结我很下意识的点了第二个是…
作者: carlcarl (carl)   2016-05-26 20:33:00
人生苦短 我用Python
作者: fouring (香菇)   2016-05-26 21:01:00
后端不会PHP是不是不行啊?
作者: y3k (激流を制するは静水)   2016-05-26 21:21:00
就算现在 PHP一样很容易写出让人看了觉得难过的东西前面的包袱太重了
作者: crossdunk (推嘘自如)   2016-05-26 21:22:00
搭配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
作者: kenwufederer (Nash)   2016-05-27 09:49:00
推一下PHP
作者: et282523 (不屈斗志)   2016-05-27 10:19:00
不同的时空背景有不同的作法啊,也不能说 include 一堆档案就是错误的写法吧?毕竟现在 php 的 autoload 也是在 __autoload 做 include ,只是不去翻看不到而以。当然 autoload 是优雅很多没错啦!
作者: chan15 (ChaN)   2016-05-28 15:40:00
推超级 PHP XD
作者: JohnRoyer (Zero 日落)   2016-05-28 23:13:00
原 PO 请振作 XD
作者: side112358 ( Nrove)   2016-05-31 17:29:00
PHPConf Taiwan 2016会请到现代PHP的作者,欢迎来听!
作者: rickysu (Ricky)   2016-06-01 09:31:00
帮推 PHPConf Taiwan 2016...

Links booklink

Contact Us: admin [ a t ] ucptt.com