Т.к. мои страдания на codeigniter уже исчерпали себя и началась деградация :-/
Хочу развиваться и выбор пал на symfony. Что-то меня в нем цепляет)
Тут хотелось бы делится своими находками и открытиями, ну и получать критику. Главное критика) без нее не вижу способов роста и развития.
Пока мои знания ограничиваются написанием сайтов на стареньком codeigniter. Очень хочу, чтоб это было пока.
Похожей темы о symfony на форуме не нашел, поэтому вот она тут xD
Чтоб было интересней мне, по ходу буду вести разработку блога.
Будут и вопросы))
Зы. Со временем могу написать какой-то модуль для этого сайта. Не на symfony, конечно, и практика точно не помешает. Может займусь фут менеджером. Но это возможно, если будут силы и время. Желание есть)
Ну тут правильно вопрос задан, насколько я знаю, у нас есть несколько серьезных кодеров, которые так, или иначе используют пакеты от Symfony.
даже в движке mobiCMS, что щас пишется, используется Symfony HttpFoundation.
Я думаю, что ответы на вопросы должны появиться
Когда просматривал документацию mobicms заметил схожесть архитектуры. Тоже набор компонентов, которые, как конструктор, собраны в одну систему :-)
Пока в моем сознание symfony - набор независимых компонентов.
Уже пробовал установить его(дальше расскажу, как это делать и с какими ошибками встретился) и пробовал создавать сущности(entity). Мне понравилась работа с базой, тоже дальше опишу чему научился.
Начнем с установки
Установить фреймворк можно с git репозитория или же через консоль.
Я пользовался установкой через консоль, опыт работы с консолью(лично мне та и вообще) точно не будет лишним.
Моя система Windows, но установка на офф сайте описана как через linux так и через windows, по-этому проблем возникнуть не должно.
Как пользоваться консолью(выбор папки, пока ничего больше не надо) можно найти в интернете, по-этому сразу пишу
команду для загрузки загрузчика symfony,
перед этим заходим в папку в которой будем проводить установку
php -r "readfile('http://symfony.com/installer');" > symfony
Возможная ошибка при работе в Windows: При использование команды php может возникнуть ошибка отсутствия . команды php. Для ее исправления нужно найти файл php.exe. У меня OpenServer и для версии 5.6 адрес к этому файлу:
C:\OpenServer\modules\php\PHP-5.6\php.exe
И выполнять команду через этот файл:
C:\OpenServer\modules\php\PHP-5.6\php.exe -r "readfile('http://symfony.com/installer');" > symfony
Можно создать ссылку на php, но это лишняя ссылка.
Создание проекта
Для создания проекта нужно перейти в папку с вашими сайтами. У меня эти сайты находятся по адресу
C:\OpenServer\domains. У вас это другая папка :-)
Для линуксов нужно открыть права доступа или выполнять команду с правами суперадмина!
Для создания проекта используется команда:
symfony new my_project
my_project - адрес для вашего сайта.
p.s. может есть еще какие-то нюансы, то я их пока не знаю.
Дальше я начал искать, по старой ужасной привычке, где находятся модели, контроллеры и представления, и оказалось все не так просто. Нашел парочку способов архитектуры создания приложений.
Как я понял: модели это и есть entity приложения в которых реализуется структура данных, открыл для себя ORM(дальше еще напиши про это) и возможны getters, setters. Вся бизнес-логика хранится в сервисах.
Что касается контроллеров и роутеров, то тут все для меня было интересно для экспериментов. Открыл для себя аннотации. В симфонии возможно описывать правила роутинга в аннотациях или же указывать в конфигах системы. Дальше попробую описать и то, и другое.
Структура проекта для меня пока непонятна. В бест практикс и читая хабры, нашел такой вот способ:
app - хранятся конфигурации системы, ядро, автозагрузчик(используется composer, хотел бы тоже с ним разобраться, но пока понял, что это вообще отдельный проект, который используют в системы); тут же можно хранить конфигы роутера; представления тоже тут в папке Resources
bin - пока не понял, что там :-(. у меня три файла какие-то
src - в этой папке хранятся наши контроллеры, сущности, еще бандлы(до них руки не дошли еще. из написанного - отдельные модули, которые можно использовать многоразово)
Controller - храним контроллеры системы
Entity - храним сущности
Bundle - готовые модули, которые можно использовать
vendor - в этой папки хранится composer и компоненты системы.
А я пока что раскрыл для себя CI 3. Свободно пишу на нём. Стал немного Ларавел изучать.
# ValekS (31.08.2015 / 21:38)
А я пока что раскрыл для себя CI 3. Свободно пишу на нём. Стал немного Ларавел изучать.
CI для меня уже не приносит радости :-) Может после смены разработчиков что-то и поменяется, и будет будущее, но symfony уже делает будущее, зачем ждать кого-то :-D
хотя писать на нем тоже можно...
А Laravel... выбирал между ним и symfony. Выбрал не его, потому что он делался на основе symfony(ну не то чтобы на основе, но компоненты от symfony они у себя используют). Понимание того, что изучив symfony и поняв его, понять другой фреймворк будет проще, сделало мой выбор и теперь сижу разбираюсь. После CI сложновато войти. Документация благо хорошая и проблем, пока, не возникает). Но чую скоро пойдут вопросы и проблемы :-/
Все немножко схоже, по-этому изучу машину symfony, напишу парочку проектов и буду смотреть laravel. Проекты уже есть в задумке. А осталось разобрать инструменты.
Аааа! Бесит же, ну как можно везде писать Symfony если правильно будет Symphony? Это как CI писать как codе Ignаitеr
FROSTY!?, вобщето он правильно все пишет, Symfony. Пойди лучше почитай как нужно писать название.
Правильно symfony ) я то как раз читал ;-)