ASISG
Gy - php framework/CMS | Документацыя | Автозагрузка классов
Psr0 реализован для раздела gy/classes/, также в разделе customDir/classes/.
Для модулей не реализован psr0, что бы обратиться к модулю нужно использовать вымышленное простанство имён Gy\Modules\<имя модуля>\Classes\<имя класса>.
Пример (часть кода, из файла gy\modules\filemodule\component\work_page_site\controller.php ):
<?php
use Gy\Modules\filemodule\Classes\SitePages;
$sitePage = new SitePages($APP->urlProject.'/');
PSR-4
PSR-4 - gy в ядре не использует.
Реализован класс для PSR-4 (\gy\classes\Psr\Psr4\Psr4AutoloaderClass.php) который может использовать в своих проектах разработчик использующий gy. (это было протестировано)
Пример как пользоваться PSR-4
Нужно создать файл \customDir\gy\afterGyCore.php, и добавить в него PSR-4 автозагрузку классов указав раздел пользователя откуда брать классы.
Например (файл \customDir\gy\afterGyCore.php):
<?php if (!defined("GY_CORE") && (GY_CORE !== true)) die( "gy: err include core" );
global $APP;
// подключить psr4 автозагрузку классов
$autoloadPsr4 = new \Psr\Psr4\Psr4AutoloaderClass;
$autoloadPsr4->register();
$autoloadPsr4->addNamespace('Aqw\\', $APP->urlProject.DIRECTORY_SEPARATOR.'testPsr4'.DIRECTORY_SEPARATOR.'Aqw'.DIRECTORY_SEPARATOR);
Файл \testPsr4\Aqw\Asd\Asd1.php :
<?php
namespace Aqw\Asd;
class Asd1
{
public function test(){
echo '
'.'12345';
}
}
Файл \testPsr4.php, использующий класс:
<? include "./gy/gy.php"; // подключить ядро // include core
$asd = new Aqw\Asd\Asd1();
$asd->test();