- PVSM.RU - https://www.pvsm.ru -
Полистав множество станиц в поисковых системах, статьях хабра неоднократно сталкивался с использованием spl_autoload_register. Загрузка файлов с классом почти всегда заключалась в использовании в качестве сепаратора каталогов символа "_". Вот в этом и проблема. В результате имя класса получается примерно «Some_text_to_my_file_name», что, собственно, просто выносит
Задача значительно упрощается, если начать использовать пространства имен. Вкратце, имя класса будет иметь вид Sometexttomyfilename, что более похоже на адрес файла и добавляет функционал пространства имен в процесс подгрузки.
Autoload'ер изменит свой вид из:
spl_autoload_register(function($className) {
require_once( str_replace('_', '/', $className) . '.php' );
});
На подобный:
spl_autoload_register(function($className) {
require_once( str_replace('\', '/', $className) . '.php' );
});
Разница, собственно, не большая, но последствия, по-моему, значительные.
Допустим, у нас есть обычный Registry(php registry pattern). Он помещен в директорию ./Global/Registry.php и будет иметь вид:
<?php
namespace Global;
class Registry {
...
}
И для использования этого класса у нас будут варианты вызова:
Суть проста, но такой вид гораздо удобнее использовать.
Хочу подчеркнуть, что идея не моя и на права не претендую.
Спасибо.
Автор: spein
Источник [2]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/php-2/25905
Ссылки в тексте:
[1] мозг: http://www.braintools.ru
[2] Источник: http://habrahabr.ru/post/167567/
Нажмите здесь для печати.