Yii Framework Forum: 有没有人觉得yii2引入了命名空间后破坏了原来的自动加载机制 - Yii Framework Forum

Jump to content

Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic

有没有人觉得yii2引入了命名空间后破坏了原来的自动加载机制 Rate Topic: -----

#1 User is offline   say_hello 

  • Newbie
  • Yii
  • Group: Members
  • Posts: 4
  • Joined: 02-March 13

Posted 11 October 2014 - 03:06 AM

粗略的看了一下yii2的 changelog 和指南

需要为每个类,乃至是基础类都指定 namespace 和 use

那些原本能autoload的类都变得啰嗦起来。

再如果

要是用上一些策略模式或者工厂模式什么的话会变得更啰嗦。


小弟思想跟不上时代啦,得去补一补新知识了。
0

#2 User is offline   say_hello 

  • Newbie
  • Yii
  • Group: Members
  • Posts: 4
  • Joined: 02-March 13

Posted 11 October 2014 - 03:45 AM

有点搞混了概念...
0

#3 User is offline   ft3561572 

  • Newbie
  • Yii
  • Group: Members
  • Posts: 18
  • Joined: 16-January 13

Posted 14 October 2014 - 06:43 AM

我以前也觉的namespace 和 use 很烦
每个文件都要搞,现在用久了,习惯就好了
0

#4 User is offline   qiansen1386 

  • Junior Member
  • Pip
  • Yii
  • Group: Members
  • Posts: 54
  • Joined: 03-May 13

Posted 22 October 2014 - 10:07 AM

小生以为,这是 PHP 的要求不是 Yii2 的要求。随着PHP项目越来越庞大,很多项目都会引入若干第三方扩展和类库,命名空间变得灰常灰常重要。如果两个包都有Formatter类用于格式化输出,自动加载机制怎么判断哪个该引入,哪个不该?还是直接扔异常了事?Yii的官方扩展都有这么一长串,看看Composer里面的列表更是不得了了。可见这个还是很有用的。

.NET,JAVA,Python等等都有类似机制,这个玩意儿是必然会引入的,拖到5.3,5.4再搞已经很晚了。

如果说这个机制的毛病的话,我觉得是 PHP 的历史包袱太累赘,导致这个引入非常不彻底。举例来说,我们有很多array_shift,array_****的方法,如果完全引入面向对象,应该把他们都放到Array包或者Array类里面,引用的时候直接use \SPL\Array; 然后直接用shift()方法,而不是array_shift。就像原来的Java和python里那样。
0

#5 User is offline   notYet 

  • Newbie
  • Yii
  • Group: Members
  • Posts: 6
  • Joined: 20-May 12

Posted 29 October 2014 - 01:09 AM

等项目变大了就会发现命名空间的好处。。。
0

#6 User is offline   Boy.Lee 

  • Standard Member
  • PipPip
  • Yii
  • Group: Members
  • Posts: 111
  • Joined: 03-September 10

Posted 13 October 2015 - 11:09 AM

原则上namespace会让项目跑的更快吧。
I have 5 years+ Yii experience (1.0+2.0)

Looking for Yii Project, if you have please PM me. :)

My Website => yiilib.com
0

Share this topic:


Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic

1 User(s) are reading this topic
0 members, 1 guests, 0 anonymous users