Comments 5

конфигурация с помощью массива, где надо помнить имена ключей или подсматривать документацию.


попробуйте сделать interface


interface ConfigurationInterface
{
    public getArray();
}

И сделать классы для конфигурации которые будут реализовывать данный интерфейс и уже иметь методы для изменения.
Ну и везде где аргументом ожидается массив добавить возможность передавать ConfigurationInterface
Мне кажется это бы упростило использование и позволило использовать autocomplete для различных имен.


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

Конфигурация пишется однажды при создании класса и на основании того, какая у вас структура таблицы. Здесь проблемы нет.


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


public function set (int $id, string $title, string $content) {
    return $this->update($id, $title, $content);
}

Или value object если пожелаете:


public function set (PostInterface $post) {
    return $this->update($post->toArray());
}

cs\CRUD делает оба случая возможными, но это вещь, используемая под капотом, поэтому методы данного трейта имеют видимость protected, и им не обязательно знать что-либо об используемых выше объектах.


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

У меня глаза кровоточат от исходников. Чувак, ну почитай уже книги чистый или совершенный код. Как этим пользоваться? Почему не camelCase в стилях? Твой пример $Mail->send_to(....) — тут переменная с большой буквы, а имя метода почему-то с маленькой. Пакеты иду идут с маленькой буквы, потом уякс — с большой. методы почти везде по 40+ строк, рефакторь, разделяй логику. Удали нафиг .idea из репы, зачем она там? Ты уверен в смысле фразы … fast… framework? Пишешь здесь в примере на одной строчке в одинарных кавычках, а в следующей в двойных, которые заведомо медленнее в силу специфики обработки.

Залез в первый случайный файл /core/traits/Permission/Any.php — чувак, это п**здец. Потерял зрения сразу от встроенного SQL запроса. Все, дальше не выносимо смотреть. Со скоростью уверен там будут большие проблемы.

В общем вердикт — изучай глубже язык, оптимизируй структуры, обязательна к прочтению книга «Чистый Код» Мартин Р., обязательно больше читать про архитектуру проектов, слабую связанность компонентов.. Больше практики на простых проектах, а не замахиваться на то, в чем слабое понимание.

Если так хочется сделать фрэймворк, то сделай проще, но с какой-то супер идеей, то, что очень нужно и просто реализуется, но мало где есть или вообще пока такого не сделали, в общем какой-то креатив нужен и тогда народ потянется.

И принимай во внимание местные комменты, они в 99% говорят чего реально не хватает или нужно переделать, и не нужно спорить. Если нет реальных аргументов, то переделай — будет больше пользы.
У меня глаза кровоточат от исходников. Чувак, ну почитай уже книги чистый или совершенный код.

Вы не поверите, я читал Макконнелла. От корки до корки.


Как этим пользоваться?

Читать документацию для начала, наверное. Статьи можно здесь, на хабре, если с английским туго.


Почему не camelCase в стилях?

В стилях? Потому что 1) Мне не нравится camelCase в целом 2) В CSS более обще принято разделять дефисами и не это кажется эстетически более привлекательным.


Твой пример $Mail->send_to(....) — тут переменная с большой буквы, а имя метода почему-то с маленькой.

А с чего бы им быть одинаковыми? Объекты почти всегда с большой, методы/функции и свойста/переменные почти всегда маленькими буквами. В чём проблема-то?


Пакеты иду идут с маленькой буквы, потом уякс — с большой.

Пакеты О_о?


методы почти везде по 40+ строк, рефакторь, разделяй логику.

У вас религия не позволяет иметь 40+ строк в методе? У меня таких проблем нет.


Удали нафиг .idea из репы, зачем она там?

А вы зайдите в папку и посмотрите что за файлы там лежат. Не будете задавать глупых вопросов и считать меня дураком.


Ты уверен в смысле фразы … fast… framework? Пишешь здесь в примере на одной строчке в одинарных кавычках, а в следующей в двойных, которые заведомо медленнее в силу специфики обработки.

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


Залез в первый случайный файл /core/traits/Permission/Any.php — чувак, это п**здец. Потерял зрения сразу от встроенного SQL запроса. Все, дальше не выносимо смотреть.

Могу приписать почитать какую-нибудь книжку по SQL, облегчит последствия и следующий раз не потеряете сознание.


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

Это уже даже смешно становится:) Раз так уверены, то давайте пример того, что вы считаете быстрым full-stack фреймворком? Только не пишите подобную чушь, давайте бенчмарки, какие-то подтверждения.


В общем вердикт — изучай глубже язык, оптимизируй структуры, обязательна к прочтению книга «Чистый Код» Мартин Р., обязательно больше читать про архитектуру проектов, слабую связанность компонентов… Больше практики на простых проектах, а не замахиваться на то, в чем слабое понимание.

Я вам тоже советую изучать язык. Это может помочь в будущем не писать чушь про кавычки.


Если так хочется сделать фрэймворк, то сделай проще, но с какой-то супер идеей, то, что очень нужно и просто реализуется, но мало где есть или вообще пока такого не сделали, в общем какой-то креатив нужен и тогда народ потянется.

Давайте вы сначала посмотрите документацию, потом сравните с, предположим, Symfony, а потом вернетесь и мы поговорим предметно что проще и что быстрее предметно, а не зазубренными книжными фразами. Контакты мои найти очень просто, всегда рад пообщаться.


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

Не нужно спорить? Серьезно, завязывайте свои догмы транслировать, включите мышление, проявите упомянутый вами креатив и осмысление получаемой извне информации.

Only those users with full accounts are able to leave comments. Log in, please.