Pull to refresh

Comments 86

Без Composer'а? PSR не нужен? Зачем?

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


Используйте Lumen и добавляйте нужный Вам функционал, но городить еще что-то… Пожалейте того, кто будет сопровождать код. Ему же придется под Ваш стандарт переучиваться, вникать.
Нужен микрофреймворк — Symfony 4, Slim. А ваш код написал не в самых лучших практиках.
Очень забавно выглядит $post = (!empty($_POST))? true: false;

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


А разбираться с вашим велосипедом, который может оказаться далеко не тортом, для поддержки или, не дай всевышний, расширения проекта… Ну я попадал на такое. И тратил кучу времени на переписывание с нуля.

Знаете, я как то начал изучать Ларавел (года 4 назад) и… забросил. Я решил что у меня нету столько свободного времени что бы тратить его на Ларавел.

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

Если нет времени возможно стоило взглянуть в сторону готовых CMS?

Как раз, CMS и не подходят. Все будет совсем нестандартно.

Я бы вам таки очень посоветовала обсудить необходимое с более опытным разработчиком/ами. Есть очень больше подозрения что нестандартность решения вызвана слабым знакомством со стандартными

Я точно знаю, что CMS мне не подходит — ни одна. Потому что я точно знаю, чего я хочу. Но спасибо за рекомендацию.
CMS — система управления контентом. У вас либо в проекте в принципе контента не планируется, либо вы не знакомы со всеми возможностями всех существующих CMS. В таком ключе возникает вопрос почему вы уверены что вам PHP-то подходит?
1) Я знаком со многими CMS (WP, Joomla, Bitrix, OpenCart). Контента не предполагается в привычном виде, а тот, что будет формируется несколько иным способом, чем предлагается в классическом виде.
2) Да, подходит именно PHP по нескольким причинам: скорость разработки; часть функционала уже даже готова (на PHP). Остальные варианты (Python) тоже здорово, но это будет дольше (потому что мне нужно собрать денег на спеца и оторвать его от текущей своей работы), дороже и не факт, что проект выстрелит (простая статистика — часть проектов не работает).
Спасибо за комментарии и дизлайки. Это развивает. Отдельное спасибо за конструктивную критику и подсказки со стороны yu-hritsaiy и oldcastor. И я еще раз объясню (дизлайкающим), что ищу основу для своего решения и эта статья спровоцировать соответствующую дискуссию, чтобы узнать больше (а не реклама фреймворка, хотя я к нему уже и привык).
Лет 15 назад написание собственных фреймворков на PHP было в порядке вещей. Но это было лет 15 назад…
Мне предстоит многое написать и за короткий срок. Вы, скорее всего, правы. А если уж я решу развивать свой продукт, то, наверное, выбрав конструктивный подход, собрав лучшее. Но сейчас, честно, задача создать функциональный проект для решения конкретной моей бизнес-задачи. Вообще, благодарен хаброжителям за то, что оставляют комментарии.
Судя по этому комментарию, вы сейчас выбрали «деструктивный подход», а зачем? Что вас останавливает собирать лучшее уже сейчас?

Я за свои не долгие 2-3 года повидал не мало, разного качества, кода и, с сожалением вам сообщаю, вы пишите очень плохой велосипед, даже не с квадратными, а с треугольными колесами.

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

Во-вторых, отсутствие стандартов которые уже приняты в сообществе (Composer и PSR о которых уже упомянули ранее).

В-третьих, отсутствует покрытие тестами хоть чего-либо.

Дальше просто перечислю…

— отсутствуют нэймспэйсы
— автолоадер вы не поняли
— mysqli вместо pdo
— Database полон sql инъекций
— mvc который не mvc

В общем… Там очень много мест которые надо переписывать с нуля, даже если задаваться целью написания собственного фрэймворка. Одно я точно могу вам посоветовать уже сейчас, найдите время и деньги пройти курсы php разработки.

Поднимите уровень базовых знаний, а потом научитесь применять готовые библиотеки и собирать из них свои решения.
Очень ценный, вправляющий мозги и подробный комментарий. И не только Вы, но и всё сообщество меня переубедило. Вообще, всё началось с того, что мне прислали тестовое задание на Yii, я не знаком был с фреймворком, но справился. Не могу сказать, что Yii мне понравился. Почитал документацию Laravel, он мне показался интереснее. К тому же относительно рядом есть опытный разработчик. Не зря я потратил время на статью и подвергся критике. Спасибо.
Привет! Я тоже новичок как и вы :) Долгое время выбирал между YII и Laravel. Смотрел так же в сторону Symfony, но после неоднократных комментариев о том что порог вхождения в последний самый высокий перестал его рассматривать, хоть и сейчас часто слежу за его изменениями.
Для своего первого проекта выбрал таки YII. Написал работающее приложение. YII показался мне удобным по причине легкого входа для новичков. Тем что там из коробки есть генератор шаблонов — gii, много интерфейсных элементов (списки, таблиц и прочее). Новый проект пишу на laravel. Он мне кажется чуть сложнее, но вспоминая как это реализовывалось в YII становится проще писать.
Мой проект тоже по ТЗ и CMS мне ну никак не подойдет, но писать свой фреймворк я не хотел и не хочу, ибо зачем… есть уже годами «вылизанное» средство разработки. Он позволяет быстро и качественно разрабатывать… есть много расширений/дополнений/практик.
ЕдинственнLaravelочу сделать в своих проектах дак это DDD, которого нет в Laravel и в YII. Но мне пока до этого далеко.

Если примите мой совет он будет такой:
— курсы по PHP действительно не будут лишними (пусть даже бесплатные)
— возьмите Laravel :)
Спасибо. PHP стараюсь постоянно изучать. Но опять же я не нахожусь в профессии. Поэтому много пробелов.
Я вот еще заглядываю из за угла в сторону Python )

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

UFO just landed and posted this here
Ну, я бы не сказал, что этот фреймворк совсем уж ненормальный. И с ним работало пара сторонних разработчиков для внутренних проектов (один из них прекрасно знает Laravel и ряд других). Я спросил их честное мнение (они не знакомы друг с другом). Отметили простоту и незамысловатость, а также удобство для использования на мелких проектах, где есть какой-то нестандартный функционал. Но я повторюсь, что это не реклама моего фреймворка. Я поделился своим мнением и читаю мнения более продвинутых. И эта статья со всеми комментариями полезна тем, кто в такой же ситуации, что и я.
UFO just landed and posted this here
Кстати, о кеше и прочих вещах. Это стояло в очереди по разработке второй и правильной версии. Но руки не доходят. А сейчас мне действительно нужно накидать проект и Вы, возможно, правильно меня направляете в сторону «взрослых» фреймворков.
Отметили простоту и незамысловатость

Простота первого чтения — может быть, правда причина тут в том что у вас кода мало.
А как же простота поддержки, расширения, тестирования


И эта статья со всеми комментариями полезна тем, кто в такой же ситуации, что и я.

Эта статья про: не смог в фреймворки, напишу свой. Ваш проект — пример того как не надо делать

Спасибо за конструктивную критику. Именно это мне и нужно.
Я спросил их честное мнение (они не знакомы друг с другом). Отметили простоту и незамысловатость, а также удобство для использования на мелких проектах, где есть какой-то нестандартный функционал.

Значит это либо очень стеснительные разработчики, либо не очень квалифицированные. Потому что даже "знание фреймворка" не показатель, потому что зачастую оно лишь своится к умению наколбасить контроллеры модели и вьюшки по документации

Удивительно, почему рудименты типа CI настолько живучие.
Немного посмотрел код, спасать там буквально нечего. Посмотрите symfony, psr, composer, mvc

UFO just landed and posted this here
Вы правильно подметили про сроки.
У нас есть клиент, которому из-за «горящих сроков» проект написали на kohana (ага, том самом который в 17м году объявил о собственной смерти). Команда писала по 900 строк на метод контроллера. Не писала тестов покрывающих это дело. А теперь любая бабочка севшая рядом с сервером – ломает работу сервиса на «ура».

Парадокс в том, что вот эти всяки композеры с пср-ами ускоряют работу, а не замедляют.

UFO just landed and posted this here
Кстати, я накидал его с оглядкой на CI, Вы правильно заметили. И это же есть причина, по которой я его на данный момент не развиваю в том виде, в котором он есть. Есть мысли относительно архитектуры, библиотек и т.п. Но сил и времени нет на разработку. Эта статья — попытка собрать консилиум и вправить себе мозги.
Сначала не понял при чём тут Continuous Integration и только спустя час дошло, что речь идёт про CodeIgniter.
Видеть в 2019 году конструкцию md5(md5($user['salt']).md5($add['password_new'])) по меньшей мере странно. В PHP встроена библиотека хеширования паролей, потому использование любых самописных велосипедов приводит только к уменьшению безопасности.

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

И попробуйте использовать в работе нормальную IDE с функцией форматирования кода — хотя бы для того, чтобы привести размещение фигурных скобок к единообразному виду и избавится от лишних пустых строк.
maxsharun Обратите внимание на комментарий.

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

Если вы предприниматель и разработка идет от «денег нет, я сам смогу», то лучший выбор это Laravel/Lumen.
Он не так сложен, есть куча инфы и уроков. Также относительно много дешевых разработчиков на поддержку и развитие (порог входа ниже).
На избыточность функционала не обращайте внимание, загружаются только те файлы, которые нужны для работы конкретной страницы.

Очень частая ошибка новичка, не осилив разобраться с проверенными временем и опытом больших коммьюнити решениями, куда проще наваять свой простой и понятный велосипед… и не важно, что не покрытый тестами, о которых никто не слышал, без миграций который тоже никогда не применялись и само собой из паттернов знаком в лучшем случае синглтон… Посмотрела предыдущую публикацию… и произошедшее кажется вполне логичным, у вас очень слабый опыт разработки. Знаний php, mySql и умения развернуть и поправить модуль Wp это даже еще на уровень джуниора не тянет. Хотя знакомство с git — уже хорошо. В общем вам сюда http://phptherightway.ru/
И обязательно обзавестись нормальной IDE, судя по тому что лежит на гитхабе писалось все в каком-то блокноте

В общем вам сюда phptherightway.ru

У вас ссылка поломатая
Если вы только начинаете работу с PHP, убедитесь в том, что вы используете текущую стабильную версию PHP 5.5

на гитхабе вроде обновляют перевод getjump.github.io/ru-php-the-right-way
Напишете свой фреймворк, потом поймёте, что его надо поддерживать, выпускать новые версии, например переписать под будущий php8, обеспечивать обратную совместимость и прочее. И вместо решения бизнес-задач Вы будете тратить время на это всё. Это потеря времени и хорошо разве что для саморазвития. Я через это прошел, писал и поддерживал своё с 2006 года. В определённый момент понял что это тупик и перешел на symfony.
Очень грамотное замечание. Думаю, что пока не будет команды и возможности поддержки, оставить данный инструмент исключительно, как учебный. Потому что даже корявый проект является проектом и требует ресурсов. И сегодня я окончательно убедился, что задуманный проект буду разрабатывать на Laravel. Не смотря на шквал критики (а она правильная), я правильно сделал, что написал эту статью. Всем большое спасибо.

если на ларавел, то очень рекомендую незажмотить 9$ на laracast и, прежде чем начать, сначала поизучать туториалы на нем. А если с английским совсем беда то посмотреть интенсив от Дмитрия Елисеева https://elisdn.ru/blog/117/laravel-master-class (ну и паралелльно подтягивать английский)

Кстати, если есть желание найти такого же новичка как вы к себе в команду готов таким быть)
Я просто написал статью на хабре что я не имею программировать что бы меня научили, а найти информацию в интернете которой действительно много или прочитать книжку я не хочу потому что клиент заплатил да и сроки горят =) Уважаемый, что бы написать свой велосипед, наверно стоит понять как работают другие? Ваш микрофреймворк похож на домашнее задание по программированию, причем на 3-. Как такое стали пропускать на хабр последнее время? Есть же 999999+ форумов где можно пообщаться на такие темы =) Ну и ладно давайте мне минусов.
Я не совсем согласен с Вашей критикой. В такой ситуация прибываю не я один. И данная статья вместе с комментариями очень полезна как раз таким, как я. Поэтому насчет бесполезности, я бы поспорил. И дело не умении или неумении программировать. Вы рассуждаете как программист. Я же начал программировать, потому что нужно было развивать свой бизнес, а денег на найм специалиста не было. Первым моим приложением стало не Hello World, а парсер каталога запчастей, потом админка для сбора заявок, потом различные микропроекты. И все замечательно развивалось. Мне нравится программировать. Небольшой бизнес вынужден использовать готовые решения на CMS, которые накладывают свою бизнес-модель. Но у небольшого бизнеса часто нет ресурса, чтобы нанимать крутого специалиста или потратить миллион на разработку. Зато есть большие амбиции. Так рождаются проекты «на коленке», потому что быстро, потому что денег надо. В силу обстоятельств я вышел из прежнего бизнеса (он работает и приносит небольшой пассивный доход пока еще). И сейчас мне нужно преодолеть кассовый разрыв и создать быстро прототип решения. Мне повезло, у меня есть навыки и я могу хотя бы выбирать между своим треугольноколесным велосипедом и решением на взрослом фреймворке, создать самостоятельно проект в условиях отсутствия финансирования. Далее развить продажи и передать уже на поддержку одному из программистов и т.п. варианты. И я вижу каждый день своих коллег-предпринимателей, оказавшихся в сложной ситуации (не подготовились) и со взглядом полного отчаяния. Потому что у них вариантов в разы меньше, чем у меня. И я благодарен критике к этой статье, она развивает и не только меня. Ее будут читать другие, которые в той же ситуации, что и я. И эта статья не о том, что, мол, научите меня программировать. Она о подходе, правильном или неправильном. Комментарии помогают услышать мнение, но точно не научат программированию. И подход часто ошибочен, потому что у тебя заканчиваются резервы, завтра аренда, послезавтра налоги и зарплаты. Поэтому выбираются иногда неправильные инструменты. Когда ты преодолеваешь кризис (благодаря кривому решению), то потом выясняется, что ты нагородил кучу ненужного.
Вы рассуждаете как программист. Я же начал программировать, потому что нужно было развивать свой бизнес, а денег на найм специалиста не было

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

Я иногда брался за разработку на коммерческой основе. В основном это коллеги, которым что-то нужно быстро запилить на WP, Joomla и т.п. (заказы я искал, когда была своя студия). Но случай, о котором Вы говорите немного другое. Я решал бизнес-задачу, а заключил договор только на создание сайта, т.к. их ресурс с точки зрения лидогенерации не совсем подходил. Я дал лиды, но у нас возникло недопонимание.
И когда я преодолею ситуацию, то, наверное, напишу о том, как выбраться, имея минимум средств и времени. Но а пока всем огромное спасибо, в том числе и дизлайкающим.
Серьезно? Фреймворк? То что я увидел в сорцах кроме названия ничем фреймворк не напоминает, это обычный захардкоженый бойлерплейт для проекта.

Именно из за таких представителей PHP разработчиков, язык и не любят. Такое стыдно даже кому либо показывать, куда хабр скатился.
Вы, наверное, невнимательно читали статью? Я не рекламирую данный продукт, а если и использую, то на своих внутренних проектах. Он, конечно, не дотягивает до многих стандартов, но формально он фреймворк. Это моя ошибка, видимо, нужно было более вдумчиво отнестись к статье и написать что-то вроде: «Что выбрать, когда поджимает время, ресурсы, а проект делать надо». Язык PHP не любят пропорционально его популярности. А разработчиков хватает везде. Опять же Вы рассуждаете, как программист, которому платят зарплату. Я рассуждаю, как предприниматель, который находится в определенных условиях и вынужден выбирать. Мне несложно освоить Laravel, Yii и т.п. У меня остро стоит вопрос по срокам, потому что я попал в ситуацию с кассовым разрывом и, чтобы выбраться, мне нужно тонкое и изящное решение, которое сэкономит мне мои ресурсы. И в данном случае я заказчик, и я исполнитель. Мы (программисты и заказчики) часто находимся по разные стороны потому что преследуем разные цели. Конечно, нужно делать, как правильно. Но с какой позиции оценивать это «правильно» — с точки зрения программирования или экономического положения и ресурсов? Понимаете о чем? И когда на эту статью зайдет предприниматель, выбирая инструменты для разработки, он будет читать эти комментарии и принимать правильное для себя решение.

Если вы рассуждает как предприниматель, у вас ограниченные сроки и ресурсы, вам нужно тонкое и изящное решение и вы решили писать свой фреймворк то вы явно делаете что то не так. При этом вы сами же пишете что выучить laravel вам не сложно (что тоже вызывает вопросы).

Этот фреймворк был написан пару лет назад. Мне не сложно выучить новый фреймворк, но это займет время и еще потребуется на разработку, а в силу обстоятельств нужно запустить продажи к конкретной дате. И всё же, ударившись в полемику, я коснулся слишком личных моментов. Я учел эту ошибку при написании статьи. Она должна была выйти с другим заголовком и чуть иначе озвучить проблему. Но комментарии и дизлайки очень наглядно показывают, что предприниматели и программисты живут частов разных мирах. Это не хорошо, не плохо. Это нормально. И всё же я увидел свою ошибку при написании статьи. Посыл и ее смысл должны звучать более отчетливо, чтобы не вызывать дискуссию там, где ее не должно быть.

то есть по вашему выходит, что у вас абсолютно нет денег на найм специалиста, а проект настолько нестандартный что необходимо писать с нуля? Насколько вы уверены в его нестандартности, и то что решения на opencart/magenta с кучами различных плагинов его не покрывают? Если речь о продажах — то надо полагать это что-то магазинное.
Ну хотя бы на тостер обращайтесь за помощью, И не храните деньги в float

Я не знаю, как Вас зовут. Хотел бы по имени обратиться. Я не настолько неопытен, как кажется. Скажу так, программированию мне учиться и учиться, но в свое время, работая в веб-студии мы переделали много проектов на UMI, Joomla, OpenCart (давно это было). Кстати, кодить мне нравится и я достиг бы много, если бы был постоянно в профессии. Но моя ниша в этой сфере — быстро накидать прототип, протестировать нишу и спрос и после этого приглашать спеца. Что касается моего корявого фреймворка, то на нем я накидал проектик, который себя более чем отбил. Но ряд управленческих ошибок спровоцировали кассовый разрыв и вынужденный отказ от одного из направлений. Другой моей ошибкой было то, что достигнув определенного уровня, я пригласил менеджера по продажам, а не программиста. До эры с фреймворками я начал активно изучать именно CMS. Достаточно нестандартное. И ни один из предложенных продуктов не подходит. Магазинного там будет часть, но это совсем нестандартная для классических Интернет-магазинов структура. Но опять же, это не магазин, хотя этот функционал будет присутствовать, но с очень большими особенностями и с оглядкой на текущие бизнес-процессы. Сейчас у меня ровно такая же задача — накидать рабочий прототип (без фанатизма), получить первые отклики, понять, что к чему, увеличить трафик и подтянуть программиста в команду (уже есть, но ему за этот проект надо платить, а я на мели). И было правильное замечание, ему нужно передать проект, с которым он сможет работать. Я уже установил Laravel, начал накидывать структуру (на бумаге), изучаю документацию, делаю первые уроки. Думаю, что все получится.
О тостере. Знаете чем мне нравится сообщество программистов? В отличие от многих других профессий здесь люди делятся своими знаниями куда охотнее. Если я напишу на тостере, то там мне дадут технические советы. Эта же статья стоила мне нескольких баллов рейтинга, но вместе с вашими комментариями, она окажется куда полезнее поста на том же тостере. И, возможно, среди читателей кто-то в таком же положении. И это будет ему полезно тоже. Хотя, конечно, как и любой другой человек на планете Земля, я думал, в первую очередь, о себе.
И денег нет на данный момент. Деньги, вообще, вещь пластичная.
Написание своего фреймворка безусловно отличная штука. Через это проходит, наверно, большинство программистов, для которых работа в удовольствие. Публикация своего творения — занятие на любителя, по-мне так отдает мазохизмом, но ни в коем случае не осуждаю. Пилите дальше свой фрейморк пока энтузиазм не иссякнет. Это отличный опыт, который позволит через призму своих идей и их реализации на интуитивном уровне понять настоящие инструменты. Главное, не останавливайтесь в их изучении (и, конечно, применении).
Спасибо за конструктив )))
Конструктива как раз в моем комментарии нет, если честно. Я хотел бы выдать конструктив, написать что у вас плохо и почему, но там плохо все.
Только я не хотел публиковать изначально ссылку. Выложил из-за того, что все равно попросят посмотреть )))
Большого опыта в программировании не было.

В общем я решил написать свой микрофреймворк и создавать проект на нем.

И я решил, что мой фреймворк недостаточен.

Так все делают в начале, но не все статьи пишут. Почему? Потому что ничего полезного :)
Я сообщил причины, по которым написал статью в ней самой и в комментариях. И не фреймворк на оценку выставил. Я знал и так все его косяки. Хотя у него есть плюс — с финансовой точки зрения он более чем себя оправдал.
Тоже писал свой фреймворк на начальной стадии развития в разработке лет 10 назад.
Причины были такие:
  • с фреймворками раньше не работал
  • раньше работал только с cms, а они вообще не гибкие и для нестандартного проекта создают проблем больше чем решают
  • на работе была большая команда, но использовали самописный фреймворк, да ещё и на php 4
  • фреймворки были сложные и медленные. документации на русском не было, либо была устаревшая
  • zend framework требовал как минимум php5, а многие сидели на php4
  • в моём окружении (коллеги с работы) мало кто использовал фреймворки (либо только свой код, либо cms) и казалось, что они не нужны
  • не работал с ООП
  • работа вытягивала все силы и в свободное от неё время я играл в игры и смотрел сериалы
  • не было никакого стимула развиваться, по тому что на работе хорошо платили и мало требовали
  • свой проект начинался с пары страниц и казалось, что фрейморк для него — оверхед

Пока писал свой фреймворк возникало очень много сложных вопросов, поэтому постоянно приходилось подглядывать реализацию у zend framework. Когда с ним более менее разобрался, то сменил работу на ZF.
Спустя какое-то время познакомился в свободное от работы время с Yii. Следующая работа была на нём.
Если бы в свободное от работы время ничего не изучал, то сейчас бы до сих пор работал на первой работе-болоте, как некоторые мои коллеги уже более 10 лет. При этом laravel до сих пор не осилил (хотя я себя успокаиваю, что он мне просто не нравится). Количество вакансий на laravel/symfony пугающе обгоняет такие на yii и через пару лет можно реально остаться с очень узким выбором вакансий. Опять же пока не хватает мотивации и свободного времени. Есть ещё куча всего интересного на что оно уходит: devops, машинное обучение, смарт-контракты, nodejs, новые базы данных (influxdb, clickhouse), написание статей на хабр опять же и т.д. и т.п.
код конечно ужасный, но идея саморазвития похвальна, что бы потом не вырасти программистом который не знает php, но знает laravel фреймворк з кучей «магии»
Главное — вырасти из велосипедов.
Этот день стал очень продуктивным в плане роста ))
Вас промотивировали на изучение лавки или хотя бы ZF?
Лавки. Не могу сказать, что сложно изучать. Просто очень обширный фреймворк и в короткий срок трудно все запомнить. Но дело движется.
А про быстро запомнить речь и не идёт обычно.
Потратьте месяц-два, наработайте практику.
Я и не пытаюсь )) Сейчас речь идет о создании работающего прототипа. Там относительно все просто. Во всяком случае на моем кривом фреймворке это делается за вечер.
Вы не представляете, сколько фреймворковвелосипедов написал я, оттачивая знания. Но ни один публиковать не хочется. Всё это попытки понять науку и вырости над самим собой.
Да, часть проектов была написана на этих своих поделках, но каждый следующий велосипед смотрел на предыдущий, как на… ну вы сами понимаете. Просто поглядите на свой код пятилетней давности.
В итоге, я перешёл на взрослые фреймворки, начиная с Kohana, и дальше пробовл и пробовал… Zend, YII1,2, немного Laravel, не обошлось и без микро-фреймворков (тот же Slim)…
Одно точно — для обучения это безусловно хорошо. Но лучше для хобби-проектов и не в продакшин. А если планируется командная работа, то лучше выбрать из имеющихся и проверенных решений. Это по-взрослому.
Кроме того, там и правда уже решены многие задачи, как то кэширование, crud, авторизация и структура приложения. Да, в конце концов, куча примеров разных приложений и модулей на GitHub. Можно смотреть в чужой код, чтобы понять, воспользоваться или взять на заметку.
Не смотря на отрицательный отклик на статью, я всё же получил бесценный пинок под зад и очень продвинулся. Сейчас, не спеша, спешу. Изучаю плотно и вдумчиво матчасть
Я бы настоятельно рекомендовал вернуться вам на пару шагов назад и ознакомиться с PHP по порядку.
1. Code style — PSR-2 и только. Самый важный пункт как я считаю. Ваш текущий код невозможно читать
2. ООП. Namespace, имена классов. В PHP обычно используется CamelCase
3. MVC у вас в целом реализован, но на троечку мягко говоря. В шаблон например нельзя передать данные :)
4. Структура файлов очень плохая. Задумайтесь. Есть общемировые практики, следовать бездумно которым не стоит разумеется, но учитывать нужно обязательно.

Сама идея делать свой MVC фреймворк — отличная. Но делать реальные проекты на нем — скорее ужасная. Если вы откажетесь от проекта, то следующему проще будет переписать проект с нуля, чем понимать что делает ваш фреймворк :) Тем не менее, современные фреймворки весьма сложные в понимании, что и как работает, они слабо подходят для изучения. С ними можно работать не понимания что под капотом, но это ведет к другим проблемам, поэтому сделать свой фреймворк «по фану» — рекомендую :) Я недавно делал одно тестовое, несмотря на то, что я считаю его просто MVC каркасом, могу порекомендовать вам разобрать каждую строчку github.com/arku31/mvc_blog
Несмотря на то то, что оно незаконченное (был лимит по времени), не имеет тестов и имеет некоторые проблемы — это будет очень полезно для вас, т.к. это чистый php (такое было требование) и каждая строка написана руками и с определенной целью.
Обратите внимание на работу с шаблонами, моделями, сессиями, request/response. Это тот минимум, который требуется в минимальном понимании что такое фреймворк :)
Огромное спасибо. Конструктивный комментарий. И самое интересное то, что я как раз начал почти в таком порядке. Сейчас изучаю Laravel, параллельно (пока без фанатизма) просматриваю, что под капотом. Я создал два проекта — один черновик для Laravel, другой чистовик. Там бекенд (на Ларавел) и во фронтенд воткнул vue.js. Кстати, все оказалось не так сложно. И мой рецепт для себя в том, что я создам работающий прототип (аккуратно) с простыми функциями (на уровне 1-го класса), получу первый отклик и уже потом передам программисту, будучи уверенным, что смогу оплатить его труд.

Ваш фв не далеко ушёл от фв тс, самое главное в композере, это избавление от кучи инклюдов и автолоадеров, которые руками надо писать

А что такое «ТС»? ))) Извините (я не всегда правильно расшифровываю аббревиатуры). Я прочитал Ваш комментарий ниже. Изучаю всё. Вообще, за последнюю неделю я очень продвинулся в изучении Laravel, Comoser, бегло PSR2. Мне ещё, конечно, учить и учить. Пилю для этого проектик (он и для работы нужен, и для изучения).

Ну это типо разговорное, правильно было бы АС — автор статьи. ФВ расшифровали?

Ну, фреймворк-то я расшифровал ))) Как видите, дешифратор я, так себе ))
TL;DR, верно?
т.к. это чистый php (такое было требование)

оно незаконченное (был лимит по времени)

Загляните по ссылке, там черным по белому, в readme, написано что composer было нельзя использовать. Еще хочу заметить, я не позиционирую ЭТО как некое «фв» и не предлагаю его использовать даже в домашних проектах :)
P.S. Не видите разницы между этими двумя «проектами»? У меня для вас плохие новости :)

Там очень печалюсь, видя в ограничениях php 5.2 — 5.3

Немного не в тему, но все-таки пользуясь случаем хочу спросить ) У кого какое мнение относительно MODx Revo? Года три назад очень срочно понадобилось сделать сайт с довеском в виде системы «автоматического оформления» договоров. Т.е. клиент заходит на сайт, вносит кучу данных на основании которых генерируется вордовский файлик со сформированным договором, который печатают и подписывают. На тот момент никаких фреймворков или cms и близко не знал, задачу надо было решить срочно и таким образом, что бы в дальнейшем ее поддерживали чистокровные юристы без малейшего понятия о том, как оно работает. Ночь гуглил, выбрал MODx, потом около недели собственно писал, потом еще пару недель допиливал )). В принципе MODx очень понравился, причем именно тем, что практически ничем не ограничивает. Для себя я его поставил как раз посередине, между классическими cms типа Wordpress/Joomla и полноценными фреймворками. И для изучения гораздо проще, чем фреймворк и нет особых ограничений cms. Может он автору подойдет? Но, т.к. у меня ноль опыта в современных фреймворках, то, возможно, я ошибаюсь и меня поправят )
Я прекрасно знаю Modx, когда-то изучил Evo, потом Revo. Нет, этот продукт не подойдет. Вообще, я определился и с фреймворком и с архитектурой, и уже накидываю проект в процессе изучения. Я разделил Backend и Frontend по разным адресам. Определился с маршрутами, списком контроллеров. Сейчас отрабатываю в Laravel простые упражнения и вникаю во фреймворк. На стороне Frontend у меня Vue.js, но до фронтенда руки не дошли пока, т.к. мне нужно создать нормальный бекенд, дождаться ответа по документации API от одного из партнеров и т.п.
Ну тогда, если у вас уже есть немалый багаж знаний, изучить другой фреймворк будет не сложно.
Ностальгия! Это же улучшенная версия моего фреймворка 2010го года!

Сдвиньте сроки на неделю и разберитесь с Laravel. Адекватному клиенту все можно объяснить. Хотя бы тем что самописное решение поддерживать никто не будет после вашего ухода
Я так и сделал. А адекватный клиент — я сам ))) И сроки поджимают не просто так ))) Но спасибо сообществу. Это подстегнуло к очередному витку развития.

По поводу psr. Стандарты форматировать правильно код psr1 psr2 вроде как есть более новый psr12 вроде, типо 1+2. psr4 автозагрузка, вытекает полностью в composer. Этого для начала хватит. Композер сокращает количество инклюдов до одного

Sign up to leave a comment.

Articles