Framework foton
Инструмент для профессиональной разработки web приложений
Жесткое определение контрактов (DI)

На Framework Foton при передаче в сигнатуры метода типа контракта соответствие класса контракту определяется самостоятельно, однако иногда возникает необходимость жестко закрепить определенные контракты в зависимости от состояния, тогда на помощь приходит DI Foton.

Перейдите в файл /dev/di.php

Вы увидите готовый пример такого контракта

<?php
namespace Dev;
class DI{
    public $namespaces;
    public function __construct(){
        $this->namespaces = [
            '\Foton\Module\Operation' => 'operation'    
        ];
    }
    
    function operation(){
        global $FotonAuth;
        if($FotonAuth){
            return new \Foton\Module\Operation\Admin();
        }
        else{
            return new \Foton\Module\Operation\Base();
        }
    }
}

Вы можете добавить свой элемент в массив namespaces 

Для этого ключом укажите полное название интерфейса, а значением название метода обработки.

Ниже напишите свой метод, который в зависимости от условий будет выдавать в return ссылку на ту или иную реализацию контракта, это обязательно должен быть объект.


Далее перейдите в командную строку в корне вашего проекта и введите php foton di


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


<?php        
    $crud = new \DI\Foton\Module\Operation();
    $arr = $crud->getlist([
               'table'=>'mapofsite'
    ]);
    FotonArr($arr);


© Copyright 2026 Разработано на Framework Foton
Продукт зарегистрирован в Роспатенте