1
lizheming 2014-05-12 16:27:32 +08:00 1
好吧,其实我也是....看到用namespace的就觉得蛋疼...
|
2
barbery 2014-05-12 16:42:12 +08:00
我觉得namespace好用啊,不过sublime 等IDE都不会识别倒是真的。。。
|
3
66beta 2014-05-12 16:45:51 +08:00
还好吧,只是在我朝的虚拟主机上,全部死
|
4
ddyy OP @barbery 如果用过python的namespace,对php的namespace看都不愿看一眼。ruby的namespace都比php的好用
|
5
saharabear 2014-05-12 16:53:25 +08:00
为什么说难用?
|
6
nantmpeter 2014-05-12 17:28:56 +08:00
求科普下,卤煮,让我等涨涨姿势
|
7
CoX 2014-05-12 17:33:10 +08:00
那是不是只剩下CodeIgniter了
|
8
h2ero 2014-05-12 17:33:26 +08:00
很好用啊, 不支持namespace的框架现在还有人会用。
|
9
raincious 2014-05-12 17:33:36 +08:00
习惯了就好。已经看着这些namespace一年多了,默默地接受了,连自己的框架都支持了……当然楼主肯定是不会用的……
其实我觉得挺好的啊,把它当路径标识符用呗。 |
10
h2ero 2014-05-12 17:35:40 +08:00
现在流行的框架有几个没有用, 轻的重的,Zend Framework都用了。
|
11
ddyy OP @raincious 用 “/” 都比用 “\” 好看,起码有路径的感觉,搞不明白当初为什么不用 / 反而选择了别扭的 \ ,听说委员会还是激烈争论以后决定使用 \
|
12
ddyy OP @h2ero 框架在源代码里用是他们的事,别逼着用户使用框架的时候再引用一串 \ 就行,违和感太强烈了,使用命名前缀都比反斜线美观
|
13
ddyy OP 当然,有审美洁癖的人用php本身就是自虐
|
14
andyhu 2014-05-12 17:42:32 +08:00
个人习惯的问题,namespace比那种直接CXxxx的命名其实优雅很多,勇夺了就知道了
|
15
andyhu 2014-05-12 17:42:48 +08:00
更正错字,用多了
|
16
Monad 2014-05-12 18:07:05 +08:00 via iPhone
cxx 路过
谁能举个例子 我没看懂 莫非是yii\framework\listener这样的? |
17
vigoss 2014-05-12 18:21:43 +08:00
结合composer命名空间挺无痛的。完全能分离目录和命名的关系。心随我动。用了可能有不舒服的地方,但是总比没用舒服多了。
|
18
Sunyanzi 2014-05-12 19:14:34 +08:00 1
这又是准备吵一场的节奏么 ... 嘛 ... 你要战那便战吧 ...
其实如果不拿 php 的 namespace 当个 namespace 而只是当个 prefix 的话还是挺好用的 ... 这东西作为一个 namespace 显然不够格 ... 但说它全世界最丑陋最难用 ... 怕也有失公允 ... 用我手边的代码举个栗子 ... 随便截了几行见下图 ... 那么聪明的你告诉我 ... 如果没有 namespace ... 这些类的 autoloading 如何做 ..? 都堆在同一个路径下 ..? 定义一个非常非常非常长的类名 ..? 写配置文件做依赖注入 ..? 虽然现在这个 namespace 的实现方式也不怎么优雅 ... 但至少比上面提及的三个方式要好多了 ... 至于 backslash 这个事情 ... 我也不喜欢 ... 但原因并不是因为不好看 ... 而是每次我在字符串里写命名空间的时候要写成 \\ 这样 ... 但没有办法 ... php 的领域里已经没有另外的特殊字符可以用作 namespace 了 ... 不管你喜欢与否这已经是无可改变的事实 ... 如果觉得实在无法接受请再也不要碰 php ... 相比起你不喜欢这个语法 ... 我更不喜欢的是对 namespace 的滥用 ... 一个文件一打开就是五十多行 use ... 不读代码 ... 光那个视觉效果就够让人目眩神迷了 ... 总而言之虽然 php 的 namespace 语法被广为诟病 ... 但也不是一无是处 ... 要指责的话指责那些写出烂程序的人去 ... namespace 好端端的招你惹你了冲它发什么火儿 ... |
21
ddyy OP @aisk 解释器可以先判断是命名空间还是常量,解释型语言动态判断类型很常见啊,其他动态语言字符串相加和数字相加都用加号,其实这两个相加运算也是完全不同的
|
22
crysng 2014-05-12 20:00:03 +08:00 1
php不是亏在namespace而是亏在.(dot)上面
不然就不会出现object->method(),应该是object.method(),,(多敲了两下键盘) 相对应的,namespace就应该是.(dot)而不是\backslash了,,哈哈 这个.(dot)设计可能为当初的php4运行速度有所帮助吧 |
23
Sunyanzi 2014-05-12 21:08:56 +08:00
@raincious 见 http://php.net/language.types.string ...
「To specify a literal backslash, double it (\\).」 虽然表现上确实没什么区别就是了 ... |
24
trimleo 2014-05-12 21:24:32 +08:00
我感觉用着挺好的 配合composer 自动加载无压力
|
25
raincious 2014-05-12 22:01:00 +08:00
@Sunyanzi 嗯……这个是这么说的呢嗯……
我大概知道你为什么要这么玩,是不是你用双引号了?如果用双引号,同时的namespace里面有小写的对象名(外加第一个字符是rnt什么的话),那么真的会有玩托的风险。 当然,我大单引号就没事,啊哈哈,这也是为啥我一直坚持单双引号严格区分的原因。 |
26
lizheming 2014-05-12 22:07:22 +08:00
@Sunyanzi 孙大大T_T...我只是单纯的不喜欢用反斜线而已T_T...感觉用下划线也比用反斜线要来的爽啊,一来看起来丑,而来打起来也麻烦,完全不习惯啊有没有...
|
27
liuxurong 2014-05-12 22:24:38 +08:00
CodeIgniter欢迎你。
|
29
kenzi 2014-05-12 22:46:45 +08:00 via iPad
写了五年 php, 不会 namespace 的飘过。。。 准备学习下了。。
|
30
soli 2014-05-12 22:47:30 +08:00
另外,use XX; 竟然不能像 C++ 那样,把这个命名空间下的所有类都引入进来。
|
31
usedname 2014-05-12 22:57:55 +08:00 via Android
我觉得用起来很顺手啊,只是说它引入的太晚所以被喷的体无完肤了么?
|
32
regmach 2014-05-12 23:04:01 +08:00
楼主有在什么YII群吗?
|
33
vibbow 2014-05-13 06:26:41 +08:00
其实 \ 在英国键盘上敲起来特别顺手...
|
34
bakac 2014-05-13 07:05:43 +08:00
这个其实还好,可以autoload 没必要喷
|
35
Yuansir 2014-05-13 09:14:27 +08:00
以前不习惯,后来用上Laravel,各种习惯了
|
36
raincious 2014-05-13 09:19:05 +08:00
|