Главная
Блог разработчиков phpBB
 
+ 17 предустановленных модов
+ SEO-оптимизация форума
+ авторизация через соц. сети
+ защита от спама

Теснее дозволено применять две новые библиотеки из грядущей PHPixie 3

Anna | 29.05.2014 | нет комментариев

Пока еще только ведутся работы над третьей версией фреймворка PHPixie, но теснее дозволено верно сказать что он крепко изменится в лучшую (как по мне) сторону:

    • Полный переход на эталон PSR-2
    • От того что фреймворк будет являть собой комплект библиотек, то его компоненты дозволено будет применять в любом плане без самого PHPixie.
    • 100% покрытия кода тестами. При чем в данном случае 100% не легко фигуральное слово а реально просчитанный «code coverage», то есть отношение строк которые вызываются при исполнении тестов ко каждому строкам кода, кстати у Laravel это каждого-лишь 53%.

Вчера стали доступны две библиотеки которые войдут в PHPixie 3, они всецело готовы и их теснее дозволено применять с любым планом. Это сделано Подробнее об этом дозволено почитать в посте на сайте, а я тут опишу то что мне огромнее каждого в них нравится.

Кстати библиотеки таки подлинно покрыты тестами на 100%, убедится дозволено здесь и здесь.

PHPixie Config

Отрезки конфигурации (Config Slices)

Разрешают отделить опции для частей системы от самой системы, тем самым делая их больше агностическими и само­стоятельными. Для примера, разглядим такие настройки яруса какой-то игры в какой игрок пробует захватить дворец:

array(
    'battlefield' => array(
        'background' => 'forest',
        'castle' => array(
            'turrets' => array(
                'amount' => 5
            )
        )
    ),
    'attackers' => array(
        'knight' => array(
            'attack' => 6
        ),
        'paladin' => array(
            'attack' => 4,
            'spell'  => 'heal'
        )
    )
);

Мы теснее привыкли применять ‘.’ для чтения таких массивов, скажем применяя $config->get(‘battlefield.castle.turrets.amount’), но применять такой код в классе Castle было бы некорректно, так как ему нужно тогда знать каждый путь к тому месту где начинается его конфигурация. Дозволено безусловно в родительском классе передавать все turrets_amount прямо в конструктор, но есть наилучший путь:

class Level {
    public function __construct($slice){
        $this->battlefield = new Battlefield($config->slice('battlefield');
    }
}

class Battlefield {
    public function __construct($slice){
        $this->background = new Background($config->get('background'));
        $this->castle = new Castle($config->slice('castle'));
    }
}

class Castle {
    public function __construct($slice){
        $this->background = new Background($config->get('turrets.amount'));
    }
}
$level = new Level($config);

Как видите все классы сейчас всецело самостоятельны от самого пути конфигурации, как раз для этого и придуман slice().

Разбиение конфигурации на папки

Вероятность создавать отдельные файлы для частей конфигурации разрешает скажем легко коммитить только настройки самого приложение и включить в .gitignore файл с конфигурацией чего-то специфического ( скажем конекта к базе данных). Также как написано на сайте PHPixie разрешает на своей базе легко сделать файлы с переводом текста на сайте на различные языки. Для примера возьмем такую конструкцию файлов:

config.php
config/
 -forest.php
   -forest/
       -meadow/
            -fairy.php

Сейчас если мы будем искать опцию forest.meadow.fairy.name, поиск будет идти в таких местах:

1) ‘name’ в config/forest/meadow/fairy.php
2) ‘fairy.name’ в config/forest/meadow.php
3) ‘meadow.forest.name’ в config/forest.php
4) ‘forest.meadow.forest.name’ в config.php

Кстати есть помощь записи информ

Источник: programmingmaster.ru

 

Оставить комментарий
БАЗА ЗНАНИЙ
СЛУЧАЙНАЯ СТАТЬЯ
СЛУЧАЙНЫЙ БЛОГ
СЛУЧАЙНЫЙ МОД
СЛУЧАЙНЫЙ СКИН
НОВЫЕ МОДЫ
НОВЫЕ СКИНЫ
НАКОПЛЕННЫЙ ОПЫТ
Форум phpBB, русская поддержка форума phpBB
Рейтинг@Mail.ru 2008 - 2017 © BB3x.ru - русская поддержка форума phpBB