PHP

PHP проект без использования фреймворков

Написал проект на PHP без использования фреймворков. Потратил очень много времени. Недавно прочитал, что сейчас без использования ZEND или Yii или Symphony или подобных фреймворков получается нежизнеспособное гоvно. Так ли это?
прийти к констукции i++ можно 2 способами:
1 - изучить алгоритм работы компилятора по исходным кодам
2 - почитать документацию по ЯП

первый вариант дает знание всей подноготной, но требует достаточного времени. второй менее затратный. но дает точно такой же эффект.

что я хочу сказать: если у вас много лишнего времени, то ваш вариант, хоть и трудоемкий, но для личного развития просто неоценим. но если со временем у вас напряг, то использование фрейморков сильно упростит работу (так как, все уже изобретено до вас), а полученный сейчас опыт, вам еще не раз окупится
Женя Лыжин
Женя Лыжин
51 214
Лучший ответ
например без скрипта и html получаеться. и не плохо если руки не кривые :)
Илья Иванов
Илья Иванов
30 820
Ну почему же. Вы сделали свой велосипед, он ездит и даже вперёд (ну я надеюсь на это). Остаётся вопрос поддержки и добавления фич и поддержка, с фреймворками иногда это проще.
Константинов Павел Блин, фреймворк-то надо выбирать еще правильно...
Нахватался человек слов Zend, Symphony, ну или еще чего-то.
если мне нужен нормальный High Perfomance с плюшками, чтобы за пояс затыкал все вышеобозначенные, тогда я выберу Phalcon
Тест на жизнеспособность: будет ли нужно многим на постоянной основе именно то, что Вы предлагаете? Принесет ли это прибыль бизнесу? Какую?

Всегда есть 100500 всевозможных конструкторов, CMS, CRM, новых фреймворков и т. п. аналогичных продуктов и 9999 демпингующих азиатских программистов на фрилансе и в аутсорсе, которые могут сделать Вашу работу за Вас )

Велосипед это крайне полезный индивидуальный опыт.
Вы с языком как он есть поработали. Чтобы разницу понять между PHP и другими языками, попробуйте именно свой проект (ведь вы его знаете от и до) перенести на другой серверный язык. На ROR или NODEJS перепишите. Это будет еще более полезно, поскольку быстро поймете как в ROR или NODEJS такие же функции реализуются, как в PHP, ну и возможно, примите решение использовать Рельсы или Ноду. В ноде можно вообще делать изоморфные приложения. Советую обратить внимание именно на тему изоморфных веб-приложений. За ними большое будущее.

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

Предположим, у Вас CMS, ориентированная на MySQLi. Если вы перепишите код так, чтобы можно было миграции делать между разными базами данными, т. е. не MySQL использовать, какую-то другую базу данных, то у Вас получится что-то вроде ORM/ActiveRecord и модели появятся сами собой. Ну просто потому что по-другому не получится, все равно к этому подходу Вы придете рано или поздно. Т. е. фреймворк - квинтэссенция опыта разработчиков.

От использования фреймворков проект не становится жизнеспособней, потому как уровень программиста-пользователя фреймворка и опыт разработчиков фреймворка не сопоставим. А фреймворки рождаются и умирают. Где например, сейчас CodeIgniter или Kohana ) Ну а если разработчик радикально интерфейсы переделает, проект придется переписывать. Такие вещи надо учитывать и быть к ним готовы. Идеальный вариант - не прибивать гвоздями проект к какому-то фреймворку. Вы не застрахованы от ошибок, которые не совершил бы опытный программист. Можно использовать супермодный фреймворк и в результате получить невразумительный результат с труднообнаружимыми ошибками, багами и т. п. Личный опыт (сын ошибок трудных) приходит со временем. Это тем более касается PHP, у которого нет строгой типизации.

Т. е. это тоже такой хороший момент для развития - делаете серверный продукт, напишите к нему клиентскую программу на Mono, FreePascal или QT, сделайте API. И если это CMS какая-то, да не важно, возможно, людям будет удобнее пользоваться таким клиентом, а не браузер открывать.

С другой стороны, представьте себе что 1) надо проекты делать быстро 2) их много. Тогда Вы придете к идее завтоматизировать рутинные процессы. Что и делается с помощью утилит для скаффодинга, кодогенераторов. Например, в MEAN стеке это решается с помощью утилиты yeoman.io и менеджера зависимостей npm,
в ROR с помощью конструкций типа
rails create blabla
bundle install
rails generate model ...
rails generate controller
rake db:migrate
и т. п.
В Yii такие функции выполняет gii.

Поэтому не только на фреймворки внимание обращайте. Ищите инструменты, которые Вам время высвободят. Посмотрите редакторы Bracket, Atom, LightTable.
Они превратят в сказку работу с исходным кодом.

Например, я пишу утилиту, которая быстро позволяет состряпать прототип одностраничника со всеми необходимыми CSS/JS библиотеками. Потому как руками это не охота вбивать даже с помощью консоли. Хочется выбрать условно говоря - хочу Angular допустим, Normalize и PureCSS и чтобы разметка была 3 sections с div в каждом, ну и грубо говоря файлики чтобы создались недостающие вроде .htaccess,script.js и т. п. Велосипед :)