[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: abc.php на правах bootstrap
Страницы: 1, 2, 3, 4
Dezigo
Цитата
Reader xml, json, понятно, а для чего php файлы считывать? куда их считывать потом?

Если config файл создан как .php и возврощает массив, то есть смысл иметь эту возможность.
OleKh
Цитата (Dezigo @ 8.10.2015 - 17:55)
Если config файл создан как .php и возврощает массив, то есть смысл иметь эту возможность.


Учитывая пример Oyem, такой вариант может быть?

class FileSystem
{
public static function getIncludes($filename)
{
return include_once __DIR__ .$filename;
}
}


interface InterfaceReader
{
public function fromFile($filename);
}

class php implements InterfaceReader
{
public function fromFile($filename)
{
return FileSystem::getIncludes($filename);
}
}

twin
Цитата (Dezigo @ 8.10.2015 - 13:17)
1. Аutoloader
2. abc::run->...
3 Loading required components
4. Когда загрузился компонент \Config
- Загружаем config

Напиши пример пользовательской конфиги плиз. И как она и на каком этапе будет загружаться.

Цитата (Oyeme @ 8.10.2015 - 14:38)
Выносим все отдельно

Тебе сюда надо сходить. smile.gif

_____________
Если вам недостаточно собственных заблуждений, можно расширить их мнениями экспертов.

Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.

Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.

user posted image
Arh
Santehnick
Ну видишь, а говоришь нельзя при любой архитектуре =)



_____________
Промокод предоставляет скидку на заказ домена и/или хостинга reg.ru
BFCC-3895-8804-9ED2
twin
Короче говоря, по совету друзей, купил автомобиль Москвич. smile.gif

Сделал все что смог, учитывая замечания. Теперь вроде бы отвечает всем моим требованиям

1. Фреймворк может запускаться с мнимальной комплектацией и отсутствием внешних настроек. И вообще даже без приложения.
Объясню, для чего это нужно.

Для тех, кто пока не юзает композер (а среди новичков таких больше чем полностью) можно скачать портабл-версию. Запустить сходу, ничего не настраивая. И получить во первых сразу визуальный результат, во вторых то, что задекларировано в спецификации:
Цитата
Многофункциональное, инуитивно понятное API

Вот в нем уже и будет ссылка на подробную документацию, что такое композер, и с чем его едят.

После этого, в API, юзер выбирает необходимую конфигурацию компонентов, и система сама сформирует composer.json и .gitignore в зависимости от желаемого. Это понизит до нереального плинтуса порог вхождения.

2. Этот фреймворк можно будет использовать для самых маленьких сайтов, включая одностраничные. smile.gif Согласитесь, для визитки на 5 страниц глуповато тащить весь фреймворк с композерами, DI и прочими составляющими. Если что-то понадобится, догружаем посредством того же API или вручную настраивая композер.

3. Возможна любая конфигурация площадки. Причем с минимумом телодвижений. Это я уже объяснял.


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

Код исправил в первом посте.

_____________
Если вам недостаточно собственных заблуждений, можно расширить их мнениями экспертов.

Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.

Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.

user posted image
twin
Разделил обязанности по совету Oyeme. Вынес выбор режима обработки ошибок в отдельный класс. Действительно так прозрачнее и на будущее задел. smile.gif
Спасибо.

_____________
Если вам недостаточно собственных заблуждений, можно расширить их мнениями экспертов.

Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.

Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.

user posted image
Dezigo
Всё таки обойдёмся без FileSystem class, так как это делает компонент зависимым и кон\Config компоненту нужно самому читать файл без помощи других компонентов.

Цитата
FileSystem
{
    public static function getIncludes($filename)
    {
      return include_once __DIR__ .$filename;
    }
}


stump
Цитата (twin @ 7.10.2015 - 16:37)
    public static function createNewAbc($appConfig = [], $siteConfig = [])
{
if (!empty(self::$abc)) {
throw new Exception('Only one object');
}

$appConfig = is_array($appConfig) ? $appConfig : [];
$siteConfig = is_array($siteConfig) ? $siteConfig : [];

self::$abc = new self;
self::$abc->run($appConfig, $siteConfig);
}

На сколько непонятен код?

Вообще непонятен.

Уверен что должно быть так:

private function __construct()
{
self::debugger();
self::config();
}

public static function run()
{
if (!empty(self::$abc)) {
throw new Exception('Only one object');
}

self::$abc = new self;
}

public static self::config(array settings)
{
//TODO: write config method
}


_____________
Трус не играет в хокей
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.