Структура OSC\OM

Введение

Структура OSC\OM использует новые возможности, начиная с PHP v5.5, для улучшения производительности, безопасности и модульности программной базы. Используя пространства имён и автоматическую загрузку, теперь еще проще добавлять новые функции и расширить существующие функции без необходимости редактирования основных файлов исходного кода.


Базовая структура расположена в каталоге includes/OSC:

Структура Пространства имён Локация
Ядро OSC\OM includes/OSC/OM
Сайты OSC\Sites includes/OSC/Sites
Apps OSC\Apps includes/OSC/Apps

Пространства имен / Автозагрузка

Структура построена с использованием стандарта PSR-4 автозагружаемых классов пространств имен и путей к файлам. Классы автоматически загружаются по требованию и не должны подключаться вручную.
База пространства имен автозагрузчика находится в OSC и загружает классы файлов, расположенных в каталоге includes/OSC/.

Например

Классы Расположение файлов
OSC\OM\OSCOM includes/OSC/OM/OSCOM.php
OSC\OM\Db includes/OSC/OM/Db.php
OSC\OM\Registry includes/OSC/OM/Registry.php
OSC\Sites\Shop\Shop includes/OSC/Sites/Shop/Shop.php
OSC\Apps\VENDOR\APP\APP includes/OSC/Sites/Shop/Shop.php

Классы, в структуре, должны объявить своё пространство имен в качестве первого кода PHP в файле.

Например


namespace OSC\OM;

class NewClass

{
....
}

Полное пространство имен в приведенном выше примере будет выглядеть так:

 
OSC\OM\NewClass

и местоположение файла будет выглядеть так:

 includes/OSC/OM/NewClass.php

Для другого класса, чтобы иметь возможность автоматически загружать OSC/OM/NewClass, оно должно быть
объявлено с использованием ключевого слова PHP после того, как в пространстве имен класса и до любого другого PHP-кода.


namespace OSC\OM;

use OSC\OM\NewClass;

class AnotherNewClass

{

public function __construct()

{

$NewClass = new NewClass();

}

}

Структура автозагрузчика (OSC/OM/OSCOM::autoload()) регистрируется как автозагрузчик в includes/application_top.php и автоматически инициализируется во всех PHP файлах.

Шаблонам файлов не нужно иметь ространство имен, но по прежнему нужно ссылаться на классы структуры, которые они используют:


use OSC\OM\HTML;

echo HTML:: outputProtected('Hello World!' );

?>
Более подробную информацию, о пространствах имен, можно найти на страницах документации языка PHP, пространство имен.

Сайты

Сайты зарегистрированы в рамках инициализации и применяют параметры среды, специально для этого сайта.

Доступные сайты в ядре являются:

Сайт Контроллер
Shop (default) OSC/Sites/Shop/Shop
Admin OSC/Sites/Admin/Admin

Сайты зарегистрированы и получены следующим образом:

use OSC\OM\OSCOM;

OSCOM:: initialize();

OSCOM:: loadSite('Shop' );

$site = OSCOM:: getSite();

Apps

Программы представляют собой автономные пакеты, которые добавляют новые или расширить существующие возможности путем
модулей и hooks. Приложения находятся в их собственном каталоге и не нужно редактировать файлы ядра исходного кода.


Программы расположены в следующем каталоге:

Пространство имен Расположение файлов
OSC\Apps\VENDOR\APP includes/OSC/Apps/VENDOR/APP

Приложения также имеют публичный каталог для публичных доступных файлов, таких как таблицы стилей, JavaScript и изображения, расположенные по адресу:

 public/Apps/VENDOR/APP

Более подробную информацию можно найти в разделе Apps.

Стандарты кодирования

Структура кодируется согласно стилю кодирования PSR-2.

Предыдущая статья:

Конфигурация файлов osCommerce v2.4

Следующая статья: Нет статей