Слайд 2
![О себе Евгений Ермолаев 8 лет в веб-разработке (PHP) Magento, X-Cart, Symfony Тим-лид , разработчик](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/411690/slide-1.jpg)
О себе
Евгений Ермолаев
8 лет в веб-разработке (PHP)
Magento, X-Cart, Symfony
Тим-лид , разработчик
Слайд 3
![Composer Что это?](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/411690/slide-2.jpg)
Слайд 4
![Composer](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/411690/slide-3.jpg)
Слайд 5
![Установка Symfony2 Как создать приложение?](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/411690/slide-4.jpg)
Установка Symfony2
Как создать приложение?
Слайд 6
![Установка Symfony2 Устанавливаем Symfony в желаемой папке: php composer.phar create-project symfony/framework-standard-edition path/ '2.5.*'](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/411690/slide-5.jpg)
Установка Symfony2
Устанавливаем Symfony в желаемой папке:
php composer.phar create-project symfony/framework-standard-edition path/ '2.5.*'
Слайд 7
![Ввод параметров](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/411690/slide-6.jpg)
Слайд 8
![Настройка сервера Создаем файл настроек: sudo nano /etc/apache2/sites-available/path.local.conf 2. В](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/411690/slide-7.jpg)
Настройка сервера
Создаем файл настроек:
sudo nano /etc/apache2/sites-available/path.local.conf
2. В открывшемся редакторе вводим:
3. Включаем
конфиг сайта:
sudo a2ensite path.local.conf
4. Рестартуем апач:
sudo service apache2 reload
Слайд 9
![Настройка сервера 5. Добавляем свой url в файл hosts: sudo](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/411690/slide-8.jpg)
Настройка сервера
5. Добавляем свой url в файл hosts:
sudo nano /etc/hosts
Пишем такую
такую строчку в конец файла:
127.0.0.1 site.local
6. В папке проекта выставляем права:
sudo chmod 777 -R app/cache app/logs
7. Проверяем в браузере:
http://site.local/config.php
http://site.local/app_dev.php
Слайд 10
![Установка Symfony2 Как выглядит default page симфони проекта?](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/411690/slide-9.jpg)
Установка Symfony2
Как выглядит default page симфони проекта?
Слайд 11
![](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/411690/slide-10.jpg)
Слайд 12
![Принципы MVC-приложения Что такое MVC?](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/411690/slide-11.jpg)
Принципы MVC-приложения
Что такое MVC?
Слайд 13
![Принципы MVC-приложения Браузер Контроллер (Controller) Вид (View) Модели (Model) Model View Controller](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/411690/slide-12.jpg)
Принципы MVC-приложения
Браузер
Контроллер
(Controller)
Вид
(View)
Модели
(Model)
Model
View
Controller
Слайд 14
![Папка с настройками, логами и кэшем Папка с вашими модулями](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/411690/slide-13.jpg)
Папка с настройками, логами и кэшем
Папка с вашими модулями
Ваш модуль
Контроллеры
Темплейты, настройки,
css, js
Сторонние библиотеки
Веб-папка
Структура Symfony2
Слайд 15
![Роутинг Что это?](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/411690/slide-14.jpg)
Слайд 16
![Рабочий цикл веб-приложения app.php app_dev.php](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/411690/slide-15.jpg)
Рабочий цикл веб-приложения
app.php
app_dev.php
Слайд 17
![Роутинг Глобальный файл app/config/routing_dev.yml](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/411690/slide-16.jpg)
Роутинг
Глобальный файл app/config/routing_dev.yml
Слайд 18
![Роутинг 2. Файл модуля src/Acme/DemoBundle/Resources/config/routing.yml](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/411690/slide-17.jpg)
Роутинг
2. Файл модуля src/Acme/DemoBundle/Resources/config/routing.yml
Слайд 19
![Роутинг 3. Файл контроллера src/Acme/DemoBundle/Controllers/DemoController.php $get= $request->get(variable'); $post = $request->request->get(variable');](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/411690/slide-18.jpg)
Роутинг
3. Файл контроллера src/Acme/DemoBundle/Controllers/DemoController.php
$get= $request->get(variable');
$post = $request->request->get(variable');
Слайд 20
![Генерация каркаса приложения Создание модуля (бандла): php -f app/console generate:bundle](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/411690/slide-19.jpg)
Генерация каркаса приложения
Создание модуля (бандла):
php -f app/console generate:bundle
* Название: SimbirSoft\TestBundle
* Аннотации
* Ответить “yes” на предложение генерации полной структуры папок
2. Проверка результата:
http://site.local/hello/test
Результат в браузере: “Hello test”
Слайд 21
![Генерация контроллеров В консоле необходимо выполнить команду: php -f app/console](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/411690/slide-20.jpg)
Генерация контроллеров
В консоле необходимо выполнить команду:
php -f app/console generate:controller
Далее в
интерактивном режиме задать
имя контроллера
Формат роутинга – annotation
Задать имена контроллерам, action route, темплейты
Слайд 22
![CRUD Что это?](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/411690/slide-21.jpg)
Слайд 23
![Генерация CRUD В консоле необходимо выполнить команду: php –f app/console generate:doctrine:crud](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/411690/slide-22.jpg)
Генерация CRUD
В консоле необходимо выполнить команду:
php –f app/console generate:doctrine:crud
Слайд 24
![Реализация таблицы](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/411690/slide-23.jpg)
Слайд 25
![Создание Action](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/411690/slide-24.jpg)
Слайд 26
![Как ограничить результат](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/411690/slide-25.jpg)
Слайд 27
![Вывод в темплейте](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/411690/slide-26.jpg)
Слайд 28
![Загрузка шаблона Используется шаблонизатор Twig Соответствие контроллера и шаблона: 3.](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/411690/slide-27.jpg)
Загрузка шаблона
Используется шаблонизатор Twig
Соответствие контроллера и шаблона:
3. В шаблоне доступны данные
возвращаемые из контроллера.
Слайд 29
![Использование git 1. Установка git: sudo apt-get install git-core 2.](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/411690/slide-28.jpg)
Использование git
1. Установка git: sudo apt-get install git-core
2. Генерация ключей доступа:
ssh-keygen
3. Из папки .ssh залить файл id_rsa.pub на сайт github или gitlab
4. Получить код проекта: git clone git@github.com:eermolaev/test2.git
5. Создаем файлы
6. Добавляем файлы в систему контроля: git add .
7. Коммитаем файлы в локальную ветку: git commit –m ‘My desciption’
8. Отправка изменения на сервер: git push
9. Получить изменения с сервера: git pull
10. Статус: git status
Слайд 30
![Пример приложения https://github.com/hiend/simbirsoft_examples/tree/ch06ch07ch08](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/411690/slide-29.jpg)
Пример приложения
https://github.com/hiend/simbirsoft_examples/tree/ch06ch07ch08