Pull to refresh

О пользе namespace'ов

Reading time1 min
Views1.4K
В последних версиях PHP появились namespace'ы — пространства имен.

У них есть очевидные преимущества:
— помогают сократить названия классов;
— позволяют избежать конфликтов имен;
— помогают лучше структурировать классы.

Но, помимо этого, есть еще преимущество, на которое не так часто обращают внимание: namespace'ы помогают разработчику видеть зависимости того или иного класс, причем это не приводит к какому-либо оверхеду. Поясню.

Помните, как в PHP4 мы писали перед объявлением класса:
require_once "MyClassParent.php";
require_once "MyClassDependency.php";


Потом пришел PHP5, появился __autoload() и spl_autoload_register() — мы убрали безусловные подключения файлов и вместе с ними оверхед. Все хорошо, да вот только теперь не так очевидно стало, какие же другие классы/файлы нужны для нашего класса, чтобы он нормально функционировал.

И тут — появляется батут php-5.3. Теперь, без лишнего оверхеда мы можем, и даже не только можем, но и в определенных случаях должны — указывать зависимости нашего класса:
use myns::MyClassParent;
use anotherns::MyClassDependency;


Отметим, что при использовании use не происходит подключения файлов с классами.
Теперь, как говорится, и программисты волки сыты, и харды овцы целы.
Tags:
Hubs:
Total votes 30: ↑23 and ↓7+16
Comments20

Articles