Мое знакомство с symfony

347
.
Т.к. мои страдания на 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. может есть еще какие-то нюансы, то я их пока не знаю.
.
UJIN
Дальше я начал искать, по старой ужасной привычке, где находятся модели, контроллеры и представления, и оказалось все не так просто. Нашел парочку способов архитектуры создания приложений.

Как я понял: модели это и есть entity приложения в которых реализуется структура данных, открыл для себя ORM(дальше еще напиши про это) и возможны getters, setters. Вся бизнес-логика хранится в сервисах.

Что касается контроллеров и роутеров, то тут все для меня было интересно для экспериментов. Открыл для себя аннотации. В симфонии возможно описывать правила роутинга в аннотациях или же указывать в конфигах системы. Дальше попробую описать и то, и другое.

Структура проекта для меня пока непонятна. В бест практикс и читая хабры, нашел такой вот способ:
app - хранятся конфигурации системы, ядро, автозагрузчик(используется composer, хотел бы тоже с ним разобраться, но пока понял, что это вообще отдельный проект, который используют в системы); тут же можно хранить конфигы роутера; представления тоже тут в папке Resources
bin - пока не понял, что там :-(. у меня три файла какие-то
src - в этой папке хранятся наши контроллеры, сущности, еще бандлы(до них руки не дошли еще. из написанного - отдельные модули, которые можно использовать многоразово)
Controller - храним контроллеры системы
Entity - храним сущности
Bundle - готовые модули, которые можно использовать
vendor - в этой папки хранится composer и компоненты системы.
.
Ей 25
А я пока что раскрыл для себя 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 ) я то как раз читал ;-)
Всего: 14