[редактировать]

Автозагрузка классов

DevelNext и JPHP по-умолчанию используют автозагрузку классов, используя имена классов. Автозагрузка, это способ автоматически подключать файлы с классами по мере их использования. Это означает, что класс не будет загружен в систему до тех пор, пока он не будет где-то использован в коде.



Название классов

Название классов в php обычно состоит из namespace и короткого названия. Для примера разберем класс php\gui\UXButton.

<?php
namespace php\gui;

class UXButton {

}

Здесь мы видим класс UXButton, который объявляется внутри пространства имен php\gui. По этим критериям формируется полное название класса, т.е. php\gui + UXButton и выход php\gui\UXButton.

Символ \ в названиях является частью синтаксиса php и является символом разделителя в namespace.


Механизм загрузки

В php есть стандартный механизм автоподгрузки классов, см. здесь.
С помощью этого механизма, в DevelNext реализована следующая схема:

  1. Встречается класс php\gui\UXButton.
  2. Если класс еще не существует, срабатывает загрузчик.
  3. Загрузчику передается полное название класса, т.е. php\gui\UXButton.
  4. По названию класса загрузчик формирует путь к php файлу с классом.
  5. DevelNext его сформирует как res://php/gui/UXButton.php, файл из ресурсов.
  6. Происходит include "res://php/gui/UXButton.php".

Ресурсы и протокол res://

Протокол res:// - это системный протокол внутри JPHP и DevelNext, он помогает обращаться к любым файлам из ресурсных источников. Если вы разрабатываете проект в DevelNext, то ресурсной папкой будет <путь к проекту>/src. После компиляции, все файлы внутри src попадают в исполняемый файл и их по прежнему можно читать по протоколу res://, хоть они уже и находятся внутри вашего приложения.


Смотрите также

Посмотрите альтернативный обзор этой возможности в статье нашего активного пользователя https://tssaltan.ru/969.develnext-подключение-сторонних-классов/.