Комментарии 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
, и им не обязательно знать что-либо об используемых выше объектах.
Также использование под капотом более простых структур данных может быть выгодным с точки зрения количества используемой памяти и производительности, в то время как оптимизация более накладных структур под капотом является невозможной.
Залез в первый случайный файл /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% говорят чего реально не хватает или нужно переделать, и не нужно спорить. Если нет реальных аргументов, то переделай — будет больше пользы.
Не нужно спорить? Серьезно, завязывайте свои догмы транслировать, включите мышление, проявите упомянутый вами креатив и осмысление получаемой извне информации.
CRUD и связанные операции в CleverStyle Framework