Развитие языков программирования растёт с большой скоростью
Скачать 2.79 Mb.
|
{{ post_data.title }} {{ post_data.content }} {{ post_data.author }} {% endfor %} Код функции вы уже сами можете понять. В коде шаблона мы воспользовались циклом for для того чтобы вывести данные о посте. Заметьте то, в какой способ мы создали цикл. Мы создаём переменную post_data которая имеет данные массива post. Мы создали цикл для того чтобы перебрать элементы массива, потому если бы мы с вами попробовали бы без цикла обратиться к элементам массива мы получили бы сразу ошибку, о том что невозможно конвертировать массив в строку. И именно для того чтобы обратиться к элементам массива мы с помощью цикла конвертировали каждый элемент в строку. А дальше уже мы просто вывели их на страницу, обращаясь к их названиям, которые есть в таблице базы данных. То есть, какое название поля - такое будет названия элемента в массиве. Нам осталось создать последнюю функцию, функция удаления записи из базы данных. Все будет работать по тому же алгоритму, т.е. поиск записи по id в базе данных, получение данных и удаление данных. Посмотрите на этот код: … class PostController { … /** * @Route("/delete/{id}") */ public function deleteAction($id) { $post = $this->getDoctrine() PHP: Junior Kit 306 ->getRepository(Post::class) ->find($id); $em = $this->getDoctine->getManager(); $em->remove($post); // Удаляем пост $em->flush(); return $this->redirectToRoute("home"); } } ?> Функция выглядит намного проще, чем предыдущие. Это ясно, поскольку здесь выполняется только 2 действия. Найти пост и удалить его. Здесь мы достали объект, а потом вызвали менеджер баз данных, после чего с его помощью, а также функции remove() удалили пост. Теперь протестируйте все эти функции. Если все работает, то тогда я вас поздравляю! Вы написали собственный примитивный блог на фреймворке Symfony. Если что то не работает, то повторите все шаги сначала и прочитай все более внимательно. Теперь, когда вы уже ознакомились с тем как работает паттерн MVC на практике, а также создали своё первое приложение на фреймворке Symfony, можно сделать заключение об данном разделе. Если вас заинтересовала разработка веб-приложений на данном фреймворке, то тогда я вам советую заглянуть в официальную документацию фреймворка а также посмотреть бесплатные видео-уроки на YouTube. Я дал вам только небольшие основы данного фреймворка. Если вам не понравился данный фреймворк, то я вам рекомендую попробовать другие, такие например как Laravel или CakePHP. И изучать по тому же самому пути, т.е. читать официальную документацию и смотреть видео- уроки на YouTube. PHP: Junior Kit 307 Заключение Конец книги уже скоро. В этой главе вы узнали об том какие существуют фреймворки, поняли за каким принципом сейчас разрабатываются приложения, узнали об том как ведется разработка и вы создали собственный примитивный блог на основе фреймворка Symfony. И я думаю, некоторые новички были в шоке когда узнали что им придется все забыть и начать изучать фреймворк. Поскольку теперь, никто не разрабатывает приложения на чистом листе. А если разрабатывает, то тогда частенько такая система “изобретает велосипед” или является не надежной. Те знания которые я вам предоставил в книге являются основами которые позволяют вам понимать работу фреймворка. Так что вот так сейчас и разрабатываются приложения, и это очень сильно облегчает работу программистам, как я и говорил. Книга, видео-уроки, курсы, не смогут дать те знания, которые получают программисты через опыт. Самым лучшим способом развивать свой навык программирования и вообще любой навык - будет не только использование всех возможных ресурсов как например видео-уроки или книги, но также и создание какого-нибудь собственного проекта. Это может быть, например, интернет магазин, форум или вообще что-то новое. То что никто ещё не создавал до вас. Поэтому пользуйтесь всеми ресурсами подряд и изучайте дальше программирование если это вам нравится. Я, как и всегда попрошу читателя ответить на вопросы и выполнить упражнения которые находятся ниже. Но перед этим хочу ещё добавить. Что дальше уже будет предпоследний раздел, который не будет иметь подразделов, а суть его будет заключаться в том что там больше будет речи об том где ещё можно использовать РНР и также об сообществе разработчиков на РНР. Вообще планировалось чтобы в предпоследнем разделе книги была речь об шаблонах проектирования, но автор решил что об этом лучше не писать, поскольку это займет очень и очень много места. А PHP: Junior Kit 308 также лучше читателю самому найти книги по шаблонам проектирования на РНР. Шаблоны проектирования это отдельный разговор который требует времени и знаний для того чтобы его начать. Поэтому я завершаю этот раздел, и вы можете перейти к вопросам и упражнениям. Вопросы и упражнения для самоконтроля 1. Что такое фреймворк? 2. Как вы можете описать разработку приложений в наше время? 3. Для чего нужны фреймворки? 4. Какие вы знаете фреймворки? 5. Объясните что такое MVC-паттерн, а также расскажите об его работе. 6. За что отвечает контроллер, модель и шаблон? Приведите простые примеры. 7. Какая библиотека используется для того чтобы работать с базами данных через Symfony? 8. Как происходит получение данных с помощью Symfony и какие есть функции для этого? 9. Что нужно сделать для того чтобы создать форму в Symfony? PHP: Junior Kit 309 20 Больше об РНР Этот раздел будет кратким и вообще не будет содержать каких-то подразделов. Суть раздела заключается в том чтобы больше рассказать об РНР и где можно использовать данный язык программирования. Но также об том где ещё можно найти материалы по изучению данного языка программирования и о том какие существуют сообщества и конференции по РНР. Вопрос, где можно ещё использовать РНР кроме создания веб- приложений? Сейчас идет развитие создания нейросетей на РНР. Если кто то не знает что такое нейросети, то нейросети это искусственный интеллект который имеет способность к обучению а также к использованию предыдущего опыта для лучшего выполнения алгоритмов. И вообще нейросети сейчас стают очень популярными, и очень много компаний их используют. А где можно использовать нейросети? К примеру, сейчас нейросети используют в распознавании изображений. Одним из простых примеров нейросетей может быть нейросеть которая умеет распознавать на изображениях цифры, которые были написаны человеческой рукой. Можно много провести примеров таких нейросетей. PHP: Junior Kit 310 Это один из способов, где ещё можно использовать РНР. Я думаю, читатель сейчас удивиться когда услышит что с помощью РНР можно создавать программное обеспечение, а также даже писать игры. К примеру для того чтобы писать программное обеспечение на РНР можно воспользоваться программой PHP Delver Studio. Это одна из тех программ которые можно использовать для того чтобы создавать ПО на РНР. Конечное же есть и другие варианты. С РНР можно много чего делать, если вам интересно можете также поискать много информации об этом в Google. Я назвал вам самые популярные фреймворки, приводит примеры, больше не буду. Поскольку я считаю, что несколько примеров с одним фреймворком достаточно чтобы понять как все работает. Поскольку другие фреймворки имеют такой же самый принцип разработки приложения. Главное понимать принципы разработки, поскольку именно они дают основу для разработки чего то. Фреймворки обновляются, стают ещё большими и функциональными, но принципы разработки остаются теми самими. И знание фреймворка не так уж и играет роль как знание принципов разработки. Чтобы лучше разобраться с выбором фреймворка я рекомендую вам посмотреть некоторые видео-уроки на YouTube. Если вы хотите немного поиграться с РНР и больше подкрепить свои знания, то можете воспользоваться порталом http://codecademy.com - там вы сможете найти много разных онлайн заданий по программированию. Кроме того что вы будете тренироваться, вы также будете учиться. А что же можно сказать об том какие существуют РНР конференции и ивенты? Самым простым способом найти какую-то конференцию по РНР будет зайти на официальный сайт разработчиков РНР и перейти в раздел событий https://php.net/conferences/. Там вы можете найти много конференций которые проходят по всему миру, а также возможно вы сможете найти конференцию которая проходит в вашем городе. Конечно же вы можете поискать на веб-сайтах своего города какие будут проходит конференции и сходки разработчиков. Я рекомендую новичкам сходить на какую-то сходку PHP: Junior Kit 311 разработчиков по РНР или же по любому другому языку программирования. Это важно, поскольку на таких конференциях и ивентах в вашем городе вы можете познакомиться с целым сообществом программистов с которыми вы можете хорошо подружиться. Но кроме того что вы сможете найти себе собеседников, вам также возможно будет легче найти работу с помощью таких ивентов. А все потому что очень часто эти ивенты и конференции спонсируют многие ИТ-компании и часто им нужны новые сотрудники. И на этом я завершу этот раздел. Думаю, некоторые читатели меня спросят, но что же делать дальше? Что же делать, если мы уже выучили основы программирования на РНР? Дальше следует выучить 1 один фреймворк для начала, почитать об шаблонах проектирования, попробовать создать что то своё и поработать с какими то библиотеками для РНР для того чтобы больше расширить своё кругозрение разработчика. Книга уже подходит к концу, вы прошли путь новичка, а впереди на вас ждет путь намного сложнее и интереснее чем этот. Поэтому пользуйтесь знаниями, полученными от этой книги и давайте уже сделаем итог о том что мы выучили. Итог изученного 2/4 книги я говорил об основах программированию на РНР. А другую половину книги я давал знания, которые сейчас являются очень востребованными для младших разработчиков. Теперь настало время подбить и итоги и решить что же делать дальше читатель после того как он прочитал мою книгу. Да, я уже говорил об этом немного в конце предыдущего раздела. Но, я должен дать список других ресурсов которые более помогут подкрепить знания. Ресурсы, которые я вам дам имеют множество других PHP: Junior Kit 312 интересных курсов по веб-разработке. Но суть заключается не только в том, чтобы подкрепить больше знания, но и также поделать ещё больше реальных примеров. ● Codecademy - является очень и очень хорошим бесплатным ресурсом по программировании. Кроме того что вы сможете найти кучу бесплатных курсов по веб-разработке, вы сможете найти также задания которые помогут вам проверить их. ● Codeschool - также бесплатный ресурс, на данный момент имеет всего 2 курса по РНР. Но ими также хорошо воспользоваться чтобы больше подкрепить свои знания а также проверить их. ● Treehouse - это также хороший ресурс по изучению программирования, но тут вы получаете бесплатный доступ на некоторое время. После этого уже надо платить, если вы хотите дальше им пользоваться. ● Udemy - это целый портал, на котором можно найти очень и очень много разных курсов на разные темы. И среди них вы можете найти курсы по программированию. Некоторые могут быть платными, а другие бесплатными. И это ещё не все ресурсы которые вы можете использовать для того чтобы научиться программировать. Я дал вам основу для того чтобы развиваться дальше в веб-разработке. Дальше уже для того чтобы больше научиться надо разрабатывать реальные проекты и иметь чёткую цель того что вы хотите сделать. Некоторые изучают программирование чисто в целях хобби, некоторые для работы, а некоторые для личного бизнеса. Дальше уже это выбор читателя, в каких целях он хочет использовать свои знания программировать. Хочет ли он их развивать или хочет их использовать для создания чего-то нового - это уже его личное дело. Возможно, я напишу улучшенное издание данной книги в будущем. Но на этом моменте я завершаю книгу, которую я писал полгода. Хочу поблагодарить читателя за то что он нашёл время чтобы прочитать эту новую книгу по РНР. Некоторые говорят, что РНР уже не в PHP: Junior Kit 313 моде, но это не так. Его до сих пор очень часто используют для того чтобы разрабатывать веб-сайты и разные приложения. Поэтому используйте полученные знания от данной книги и я надеюсь что читатель будет дальше совершенствоваться не только в программировании, но вообще в любой сфере которая приносит пользу. Поэтому моё итоговое слово - спасибо. Благодарности Хочу поблагодарить Леонида К. за создание хорошего дизайна обложки для книги. Большое ему спасибо, поскольку он смог тем самым усовершенствовать мою книгу. Хотя в начале написания книги я уже создал первую версию обложки, но именно версия Леонида выглядела очень красиво и гармонично. Кроме этого Леонид также помог корректировать книгу и это очень мне помогло. Благодарность Александру Г. который помог мне в написании некоторых разделов этой книги. Большое ему спасибо также за то что был одним из тех кто первый начал читать эту в книгу в целях того чтобы проверить правильность материала. В общем, спасибо тем, кто помог мне во время написания книги. Спасибо тем кто первыми брали и читали эту книгу ради того чтобы помочь в дополнении и корректировании материала. А также спасибо людям которые прочитали эту книгу, надеюсь, что они получили то чего ожидали от этой книги. Поэтому, спасибо! - Demian Kostelny. Программист. Писатель. - 2018 год. PHP: Junior Kit 314 Структура книги Предисловие от автора 2 0 Добро пожаловать в РНР! 3 0.1 Что такое РНР? 3 0.2 Как работает сервер 4 0.3 Установка локального сервера 6 0.4 Редактор кода 8 Заключение 9 1 Первые шаги 9 1.1 Комментарии в коде 10 1.2 Переменные в РНР 11 1.3 Немного об типах данных 13 1.4 Строки в РНР 14 1.4.1 Операторы для работы со строками 16 1.4.2 Управление последовательностью 17 1.4.3 Синтаксис heredoc и nowdoc 21 Вопросы и упражнения для самоконтроля 21 2 Числа 22 2.1 Операторы для работы с числа 22 2.2 Числа с плавающей точкой 24 Заключение 25 PHP: Junior Kit 315 Вопросы и упражнения для самоконтроля 25 3 Логические операции 26 3.1 Псевдокод 26 3.2 Логическая операция if 27 3.3 Логические операторы 30 3.4 Логическая операция switch 36 3.5 Логический тип данных 39 3.6 Джордж Буль 40 Заключение 42 Вопросы и упражнения для самоконтроля 42 4 Циклы 43 4.1 Цикл while 43 4.2 Цикл do...while 44 4.3 Цикл for 45 Заключение 46 Вопросы и упражнения для самоконтроля 47 5 Массивы 47 5.1 Создание массивов 47 5.2 Операторы для массивов 49 5.3 Многомерные массивы 51 5.4 Массив ключа-значение 51 Вопросы и упражнния для самоконтроля 53 6 Функции 54 6.1 Создание функций 54 6.2 Функции для работы со строками 57 6.3 Фукнции для работы с числами 60 6.4 Функции для работы с массивами 63 6.5 Анонимные функции 66 Заключение 66 Вопросы и упражнения для самоконтроля 67 7 РНР и ООП 68 7.1 Классы 69 PHP: Junior Kit 316 7.2 Конструкторы и деструктор 72 7.3 Абстрактные классы 74 7.4 Интерфейсы 75 7.5 Перегрузка и магические методы 76 7.6 Трейты 79 Заключение 79 Вопросы и упражнения для самоконтроля 80 8 Дата и файлы 81 8.1 Работа с файлами 81 8.2 Смена прав доступа 84 8.3 Проверка файлов 87 8.4 Функции для работы с файлами 89 8.5 Дата 95 9 PHP и HTTP 104 9.1 Работа с формами 105 9.2 HTTP-методы 109 9.3 РНР и Cookies 117 9.4 $_SERVER 119 Вопросы и упражнения для самоконтроля 121 10 РНР и базы данных 122 10.1 MySQL 125 10.2 Таблицы в SQL 131 10.3 Типы данных в SQL 137 10.4 Операторы в SQL 144 10.5 Агрегатны функции 146 10.6 Транзакции 148 10.7 Резервное копирование базы данных 149 Вопросы и упражнения для самоконтроля 151 11 Доступ к MySQL через PHP 152 11.1 Доступ к MySQL через РНР 154 11.2 Создание запросов к MySQL в РНР 157 11.3 Создание блога 166 PHP: Junior Kit 317 11.4 Загрузка файлов и MySQL 166 Вопросы и упражнения для самоконтроля 171 12 Сессии 172 12.1 Обще понятия об сессиях 173 12.2 Создание регистрации 174 12.3 Создание аутентификации 178 12.4 Просмотр аккаунта 180 Вопросы и упражнения для самоконтроля 182 13 Безопасность 182 13.1 Фильтрация данных 183 13.2 Безопасность файловой системы 191 13.3 Криптография 194 13.4 Шифры 203 13.5 Хэширование паролей 218 Вопросы и упражнения для самоконтроля 221 14 Работа с другими веб-службами 222 14.1 Что такое JSON? 223 14.2 JSON и PHP 225 Заключение 235 Вопросы и упражнения для саомконтроля 236 15 Ошибки в коде 237 15.1 Виды ошибок 237 15.2 Управление ошибками 239 15.3 Откладка кода 242 Заключение 246 Вопросы и упражнения для самоконтроля 246 16 Пакетный менеджер 247 16.1 Установка 248 16.2 Использование 248 Заключение 252 Вопросы и упражнения для самоконтроля 254 17 Отправка электронных писем 255 PHP: Junior Kit 318 17.1 Основы 256 17.2 Загрузка файлов 256 17.3 Создание рассылки 259 17.4 РНР средства 261 Заключение 263 Вопросы и упражнения для самоконтроля 265 18 РНР и тестирование 266 18.1 Установка 267 18.2 Первый тест 267 18.3 Data provider 268 18.4 Больше методов для написания тестов 272 Заключение 275 Вопросы и упражнения для самоконтроля 277 19 Фреймворки 278 19.1 Какие есть РНР фреймвокри 279 19.2 Общее понятия 279 19.3 Фреймворк Symfony 280 19.4 Создание блога 282 Заключение 286 Вопросы и упражнения самоконтроля 308 20 Больше об РНР 309 Итог изученного 310 Благодарности 312 Структура книги 315 |