0 added
0 removed
Original
2026-01-01
Modified
2026-02-26
1
<p><strong>Рассказываем, в чем особенности языка PHP, его преимущества и недостатки, почему он до сих пор не теряет актуальности, что нужно знать, чтобы программировать на РHP и где тренировать свои навыки.</strong></p>
1
<p><strong>Рассказываем, в чем особенности языка PHP, его преимущества и недостатки, почему он до сих пор не теряет актуальности, что нужно знать, чтобы программировать на РHP и где тренировать свои навыки.</strong></p>
2
<h2>Содержание</h2>
2
<h2>Содержание</h2>
3
<ul><li><a>Особенности PHP</a></li>
3
<ul><li><a>Особенности PHP</a></li>
4
<li><a>Что пишут на PHP</a></li>
4
<li><a>Что пишут на PHP</a></li>
5
<li><a>Преимущества PHP</a></li>
5
<li><a>Преимущества PHP</a></li>
6
<li><a>Недостатки PHP</a></li>
6
<li><a>Недостатки PHP</a></li>
7
<li><a>Почему PHP остается актуальным</a></li>
7
<li><a>Почему PHP остается актуальным</a></li>
8
<li><a>Сколько зарабатывают PHP-разработчики</a></li>
8
<li><a>Сколько зарабатывают PHP-разработчики</a></li>
9
<li><a>С чего начать изучение РHP</a></li>
9
<li><a>С чего начать изучение РHP</a></li>
10
<li><a>Фреймворки для PHP</a></li>
10
<li><a>Фреймворки для PHP</a></li>
11
<li><a>Что еще нужно знать для программирования на PHP</a></li>
11
<li><a>Что еще нужно знать для программирования на PHP</a></li>
12
<li><a>Как выбрать редактор кода или среду для разработки на PHP</a></li>
12
<li><a>Как выбрать редактор кода или среду для разработки на PHP</a></li>
13
<li><a>Какие ресурсы использовать для изучения PHP</a></li>
13
<li><a>Какие ресурсы использовать для изучения PHP</a></li>
14
<li><a>Где тренироваться</a></li>
14
<li><a>Где тренироваться</a></li>
15
<li><a>Как стать PHP-разработчиком</a></li>
15
<li><a>Как стать PHP-разработчиком</a></li>
16
</ul><h2>Особенности PHP</h2>
16
</ul><h2>Особенности PHP</h2>
17
<p>PHP - один из самых популярных языков для веб-разработки.<a>В рейтинге языков программирования TIOBE</a>на ноябрь 2023 года PHP занимает седьмое место. PHP - это язык программирования, который позволяет создавать веб-приложения любой сложности при помощи готовых движков или фреймворков.</p>
17
<p>PHP - один из самых популярных языков для веб-разработки.<a>В рейтинге языков программирования TIOBE</a>на ноябрь 2023 года PHP занимает седьмое место. PHP - это язык программирования, который позволяет создавать веб-приложения любой сложности при помощи готовых движков или фреймворков.</p>
18
<p>Например, для разработки простых сайтов на PHP используют CMS - системы управления контентом. Самые популярные из таких систем - WordPress, Joomla и Drupal - все они написаны на PHP. Также На PHP создают и масштабные крупные проекты. Например, "Вконтакте" или Facebook.</p>
18
<p>Например, для разработки простых сайтов на PHP используют CMS - системы управления контентом. Самые популярные из таких систем - WordPress, Joomla и Drupal - все они написаны на PHP. Также На PHP создают и масштабные крупные проекты. Например, "Вконтакте" или Facebook.</p>
19
<p>Еще на PHP пишут бэкенд - внутреннюю логику приложений. Бэкенд отвечает за обработку запросов пользователя, поиск информации в базе данных и ее передачу.</p>
19
<p>Еще на PHP пишут бэкенд - внутреннюю логику приложений. Бэкенд отвечает за обработку запросов пользователя, поиск информации в базе данных и ее передачу.</p>
20
<p>Код на PHP исполняет сервер - удаленный компьютер, на котором находится программа. А браузер выдает пользователю уже готовый результат. Так посторонний пользователь не может увидеть исходный код программы.</p>
20
<p>Код на PHP исполняет сервер - удаленный компьютер, на котором находится программа. А браузер выдает пользователю уже готовый результат. Так посторонний пользователь не может увидеть исходный код программы.</p>
21
<p>Процесс работы кода на PHP выглядит так:</p>
21
<p>Процесс работы кода на PHP выглядит так:</p>
22
<ol><li>Пользователь вводит данные на сайте, который создан на PHP. Например, имя, адрес или другую информацию.</li>
22
<ol><li>Пользователь вводит данные на сайте, который создан на PHP. Например, имя, адрес или другую информацию.</li>
23
<li>Эти данные отправляются на сервер, где работает программа на PHP.</li>
23
<li>Эти данные отправляются на сервер, где работает программа на PHP.</li>
24
<li>Программа обрабатывает полученные данные и выполняет различные операции. Например, отправляет письмо на почту или сохраняет данные в базу данных.</li>
24
<li>Программа обрабатывает полученные данные и выполняет различные операции. Например, отправляет письмо на почту или сохраняет данные в базу данных.</li>
25
<li>Затем программа формирует страницу с результатами и отправляет ее обратно пользователю.</li>
25
<li>Затем программа формирует страницу с результатами и отправляет ее обратно пользователю.</li>
26
</ol><h2>Что пишут на PHP</h2>
26
</ol><h2>Что пишут на PHP</h2>
27
<p>Язык программирования PHP был создан для веб-разработки и до сих пор это его основная сфера применения. Сейчас на нем создают:</p>
27
<p>Язык программирования PHP был создан для веб-разработки и до сих пор это его основная сфера применения. Сейчас на нем создают:</p>
28
<ul><li><strong>Простые сайты</strong>- сайты-визитки или блоги на готовых движках. PHP хорошо подходит для решения таких задач. Программист в одиночку может создать лаконичный и функциональный ресурс, позволяющий эффективно решать бизнес-задачи.</li>
28
<ul><li><strong>Простые сайты</strong>- сайты-визитки или блоги на готовых движках. PHP хорошо подходит для решения таких задач. Программист в одиночку может создать лаконичный и функциональный ресурс, позволяющий эффективно решать бизнес-задачи.</li>
29
<li><strong>CMS</strong>- системы управления контентом. Это готовые движки - инструменты, на базе которых можно быстро собрать приложение. Кроме уже упомянутых WordPress и Drupal, на PHP написан MediaWiki. Этот движок использует "Википедия" и другие аналогичные проекты. CMS позволяют быстро и недорого разворачивать большие коммерческие приложения. Например, интернет-магазины. А программисты на PHP кастомизируют их под нужды конкретного бизнеса.</li>
29
<li><strong>CMS</strong>- системы управления контентом. Это готовые движки - инструменты, на базе которых можно быстро собрать приложение. Кроме уже упомянутых WordPress и Drupal, на PHP написан MediaWiki. Этот движок использует "Википедия" и другие аналогичные проекты. CMS позволяют быстро и недорого разворачивать большие коммерческие приложения. Например, интернет-магазины. А программисты на PHP кастомизируют их под нужды конкретного бизнеса.</li>
30
<li><strong>CRM</strong>- системы управления взаимоотношениями с клиентами. Их используют все крупные компании для учета, постановки задач сотрудникам, хранения информации о клиентах, контроля и запуска рекламных кампаний. Один из самых популярных примеров CRM - "Битрикс.24", написанный на PHP.</li>
30
<li><strong>CRM</strong>- системы управления взаимоотношениями с клиентами. Их используют все крупные компании для учета, постановки задач сотрудникам, хранения информации о клиентах, контроля и запуска рекламных кампаний. Один из самых популярных примеров CRM - "Битрикс.24", написанный на PHP.</li>
31
<li><strong>ERP</strong>- системы для управления бизнесом и автоматизации процессов. Обычно они включают в себя несколько модулей, например, для складского учета, финансов, кадровой документации, организации поставок, управления проектами, производства и так далее.</li>
31
<li><strong>ERP</strong>- системы для управления бизнесом и автоматизации процессов. Обычно они включают в себя несколько модулей, например, для складского учета, финансов, кадровой документации, организации поставок, управления проектами, производства и так далее.</li>
32
</ul><p>Кроме этого на PHP пишут командные утилиты - небольшие скрипты для исполнения каких-либо задач.</p>
32
</ul><p>Кроме этого на PHP пишут командные утилиты - небольшие скрипты для исполнения каких-либо задач.</p>
33
<h2>Преимущества PHP</h2>
33
<h2>Преимущества PHP</h2>
34
<h3>Доступность обучения</h3>
34
<h3>Доступность обучения</h3>
35
<p>PHP - интерпретируемый язык, то есть его код не нужно компилировать. Это снижает порог входа - первую программу можно написать буквально<a>в день начала учебы</a>. А чтобы освоить азы языка, нужно будет потратить несколько месяцев - в зависимости от времени, потраченного на учебу и глубины погружения.</p>
35
<p>PHP - интерпретируемый язык, то есть его код не нужно компилировать. Это снижает порог входа - первую программу можно написать буквально<a>в день начала учебы</a>. А чтобы освоить азы языка, нужно будет потратить несколько месяцев - в зависимости от времени, потраченного на учебу и глубины погружения.</p>
36
<h3>Кроссплатформенность</h3>
36
<h3>Кроссплатформенность</h3>
37
<p>Программы, написанные на PHP, могут работать на любой платформе. Их можно запустить на всех существующих операционных системах.</p>
37
<p>Программы, написанные на PHP, могут работать на любой платформе. Их можно запустить на всех существующих операционных системах.</p>
38
<h3>Богатая экосистема</h3>
38
<h3>Богатая экосистема</h3>
39
<p>В коммерческих проектах PHP сочетают с другими языками программирования. PHP обеспечивает хорошую совместимость с большинством распространенных технологий на рынке.</p>
39
<p>В коммерческих проектах PHP сочетают с другими языками программирования. PHP обеспечивает хорошую совместимость с большинством распространенных технологий на рынке.</p>
40
<p>PHP может работать практически с любой базой данных. Это, например, MySQL и PDO. В PHP есть множество фреймворков и библиотек, созданных для решения самых разных задач, стоящих перед веб-разработчиком.</p>
40
<p>PHP может работать практически с любой базой данных. Это, например, MySQL и PDO. В PHP есть множество фреймворков и библиотек, созданных для решения самых разных задач, стоящих перед веб-разработчиком.</p>
41
<p>Также он поддерживает работу со всеми популярными веб-серверами, такими как Apache, Nginx, Microsoft IIS и многими другими.</p>
41
<p>Также он поддерживает работу со всеми популярными веб-серверами, такими как Apache, Nginx, Microsoft IIS и многими другими.</p>
42
<h3>Обратная совместимость</h3>
42
<h3>Обратная совместимость</h3>
43
<p>Обратная совместимость - термин, которым обозначают легкость обновления кода под новую версию. Разработчики PHP стараются поддерживать ее на высоком уровне: к моменту выхода восьмой версии обратная совместимость у языка почти полная (за исключением некоторых моментов).</p>
43
<p>Обратная совместимость - термин, которым обозначают легкость обновления кода под новую версию. Разработчики PHP стараются поддерживать ее на высоком уровне: к моменту выхода восьмой версии обратная совместимость у языка почти полная (за исключением некоторых моментов).</p>
44
<h3>Большое сообщество</h3>
44
<h3>Большое сообщество</h3>
45
<p>Сообщество помогает с проблемами, которые не получается решить чтением документации и поиском в Google. Комьюнити у PHP большое и дружелюбное к новичкам - причем как в англоязычном мире, так и в России.</p>
45
<p>Сообщество помогает с проблемами, которые не получается решить чтением документации и поиском в Google. Комьюнити у PHP большое и дружелюбное к новичкам - причем как в англоязычном мире, так и в России.</p>
46
<blockquote><p>Крупнейший глобальный форум по языку программирования - PHP Community, в России - PHP Club. Существуют крупные Telegram-каналы для разработчиков разного уровня:<a>PHP Digest</a>,<a>Пых</a>,<a>Laravel World</a>. А также отдельные чаты для джунов (например,<a>phpGeeksJunior</a>), где можно задавать любые вопросы и не бояться осуждения.</p>
46
<blockquote><p>Крупнейший глобальный форум по языку программирования - PHP Community, в России - PHP Club. Существуют крупные Telegram-каналы для разработчиков разного уровня:<a>PHP Digest</a>,<a>Пых</a>,<a>Laravel World</a>. А также отдельные чаты для джунов (например,<a>phpGeeksJunior</a>), где можно задавать любые вопросы и не бояться осуждения.</p>
47
</blockquote><p>С момента своего создания у PHP был открытый исходный код. Это позволяет разработчикам создавать различные расширения и модули для улучшения функциональности PHP.</p>
47
</blockquote><p>С момента своего создания у PHP был открытый исходный код. Это позволяет разработчикам создавать различные расширения и модули для улучшения функциональности PHP.</p>
48
<h2>Недостатки PHP</h2>
48
<h2>Недостатки PHP</h2>
49
<h3>Возможность неожиданной ошибки в коде</h3>
49
<h3>Возможность неожиданной ошибки в коде</h3>
50
<p>PHP - язык со слабой динамической типизацией, что может привести к неожиданным ошибкам во время выполнения кода. Это происходит из-за того, что в PHP переменные не имеют строго определенного типа данных и могут быть использованы для хранения данных любого типа.</p>
50
<p>PHP - язык со слабой динамической типизацией, что может привести к неожиданным ошибкам во время выполнения кода. Это происходит из-за того, что в PHP переменные не имеют строго определенного типа данных и могут быть использованы для хранения данных любого типа.</p>
51
<p>Некоторые считают, что слабая типизация PHP облегчает разработку и ускоряет процесс создания кода, так как не требует дополнительных усилий на определение и проверку типов переменных.</p>
51
<p>Некоторые считают, что слабая типизация PHP облегчает разработку и ускоряет процесс создания кода, так как не требует дополнительных усилий на определение и проверку типов переменных.</p>
52
<p>Однако есть и те, кто считает, что строгая типизация PHP является важным аспектом разработки и помогает избежать многих ошибок и проблем в будущем.</p>
52
<p>Однако есть и те, кто считает, что строгая типизация PHP является важным аспектом разработки и помогает избежать многих ошибок и проблем в будущем.</p>
53
<h3>Проблема низкого порога</h3>
53
<h3>Проблема низкого порога</h3>
54
<p>Начать программировать на PHP относительно просто. Это привлекает большое количество людей, желающих стать разработчиками. Но некоторые из них не выходят за рамки программирования для CMS, работают на уровне конструкторов и редко касаются кода.</p>
54
<p>Начать программировать на PHP относительно просто. Это привлекает большое количество людей, желающих стать разработчиками. Но некоторые из них не выходят за рамки программирования для CMS, работают на уровне конструкторов и редко касаются кода.</p>
55
<p>Если вы выбрали PHP для изучения, важно правильно определить свой вектор развития и не застрять на этапе поддержки готовых решений, а начать двигаться дальше.</p>
55
<p>Если вы выбрали PHP для изучения, важно правильно определить свой вектор развития и не застрять на этапе поддержки готовых решений, а начать двигаться дальше.</p>
56
<h3>Узкий профиль</h3>
56
<h3>Узкий профиль</h3>
57
<p>Программирование - непростое занятие, которое требует большой концентрации и умственного напряжения. Разработчики из-за этого могут выгорать и выбирать другие задачи под свой стек.</p>
57
<p>Программирование - непростое занятие, которое требует большой концентрации и умственного напряжения. Разработчики из-за этого могут выгорать и выбирать другие задачи под свой стек.</p>
58
<p>Например, если Python-разработчик устанет писать код для серверов, он сможет перейти в сферу обучения нейросетей или создания программ, обрабатывающих результаты научных исследований на базе своего языка.</p>
58
<p>Например, если Python-разработчик устанет писать код для серверов, он сможет перейти в сферу обучения нейросетей или создания программ, обрабатывающих результаты научных исследований на базе своего языка.</p>
59
<p>А вот PHP почти полностью сконцентрирован на создании сайтов. В теории его можно использовать и для других задач. Но на практике найти вакансию PHP-программиста вне веб-разработки - очень непросто.</p>
59
<p>А вот PHP почти полностью сконцентрирован на создании сайтов. В теории его можно использовать и для других задач. Но на практике найти вакансию PHP-программиста вне веб-разработки - очень непросто.</p>
60
<h3>Неоптимальный дизайн</h3>
60
<h3>Неоптимальный дизайн</h3>
61
<p>PHP как язык программирования прошел долгий путь. Многие решения, принятые в начале существования PHP, сейчас выглядят неоптимальными. Несмотря на то, что вектор развития PHP изменился в лучшую сторону, некоторые противоречия в нем остались (вроде той же слабой типизации). Но с каждой новой версией их становится все меньше и меньше.</p>
61
<p>PHP как язык программирования прошел долгий путь. Многие решения, принятые в начале существования PHP, сейчас выглядят неоптимальными. Несмотря на то, что вектор развития PHP изменился в лучшую сторону, некоторые противоречия в нем остались (вроде той же слабой типизации). Но с каждой новой версией их становится все меньше и меньше.</p>
62
<h2>Почему PHP остается актуальным</h2>
62
<h2>Почему PHP остается актуальным</h2>
63
<p>PHP создали в 1995 году, и он не теряет актуальности -<a>по данным W3Techs</a>, на 76% всех сайтов в интернете есть код на этом языке программирования. Все эти огромные массивы кода и сложные приложения необходимо поддерживать - и это первая причина, почему PHP так популярен.</p>
63
<p>PHP создали в 1995 году, и он не теряет актуальности -<a>по данным W3Techs</a>, на 76% всех сайтов в интернете есть код на этом языке программирования. Все эти огромные массивы кода и сложные приложения необходимо поддерживать - и это первая причина, почему PHP так популярен.</p>
64
<p>Вторая заключается в обширном комьюнити и универсальности PHP. В нише создания сайтов из готовых решений этот язык программирования в принципе не имеет достойных конкурентов. На нем написаны системы управления контентом и корпоративное ПО, которые доминируют в своих нишах на рынках.</p>
64
<p>Вторая заключается в обширном комьюнити и универсальности PHP. В нише создания сайтов из готовых решений этот язык программирования в принципе не имеет достойных конкурентов. На нем написаны системы управления контентом и корпоративное ПО, которые доминируют в своих нишах на рынках.</p>
65
<p>На PHP сравнительно легко найти работу в любом городе России, в том числе и в провинции.</p>
65
<p>На PHP сравнительно легко найти работу в любом городе России, в том числе и в провинции.</p>
66
<p>Еще одна причина стабильного положения PHP - хорошая совместимость. Его используют в связке с JavaScript как язык для бэкенд-разработки сайтов. У него огромное количество инструментов для простой работы с базами данных и серверами - PHPStorm, Laravel, Symfony и многие другие.</p>
66
<p>Еще одна причина стабильного положения PHP - хорошая совместимость. Его используют в связке с JavaScript как язык для бэкенд-разработки сайтов. У него огромное количество инструментов для простой работы с базами данных и серверами - PHPStorm, Laravel, Symfony и многие другие.</p>
67
<p>PHP активно развивается. Его последняя версия - PHP 8.3 - вышла в 2023 году. В новом релизе исправили ошибки, улучшили производительность и добавили функции. И несмотря на то, что языку PHP предрекают смерть почти каждый год, он стабильно остается в десятке самых популярных языков и не собирается покидать рейтинги.</p>
67
<p>PHP активно развивается. Его последняя версия - PHP 8.3 - вышла в 2023 году. В новом релизе исправили ошибки, улучшили производительность и добавили функции. И несмотря на то, что языку PHP предрекают смерть почти каждый год, он стабильно остается в десятке самых популярных языков и не собирается покидать рейтинги.</p>
68
<h2>Сколько зарабатывают PHP-разработчики</h2>
68
<h2>Сколько зарабатывают PHP-разработчики</h2>
69
<p>На hh.ru в ноябре 2023 года<a>опубликовано</a>больше 3 000 вакансий PHP-программистов. Это один из самых популярных языков программирования в России и мире.</p>
69
<p>На hh.ru в ноябре 2023 года<a>опубликовано</a>больше 3 000 вакансий PHP-программистов. Это один из самых популярных языков программирования в России и мире.</p>
70
<p><a>По данным "Хабр Карьеры"</a>, медианные зарплаты разработчиков на PHP в 2023 году в зависимости от квалификации составили:</p>
70
<p><a>По данным "Хабр Карьеры"</a>, медианные зарплаты разработчиков на PHP в 2023 году в зависимости от квалификации составили:</p>
71
<ul><li>63 000 рублей для джунов - начинающих специалистов</li>
71
<ul><li>63 000 рублей для джунов - начинающих специалистов</li>
72
<li>161 000 рублей для мидлов - специалистов с опытом 2-5 лет</li>
72
<li>161 000 рублей для мидлов - специалистов с опытом 2-5 лет</li>
73
<li>250 000 рублей для сеньоров - специалистов с опытом более 5 лет</li>
73
<li>250 000 рублей для сеньоров - специалистов с опытом более 5 лет</li>
74
<li>287 000 рублей для тимлидов - начальников команд.</li>
74
<li>287 000 рублей для тимлидов - начальников команд.</li>
75
</ul><p>Есть отдельная статистика и по популярным фреймворкам на PHP.</p>
75
</ul><p>Есть отдельная статистика и по популярным фреймворкам на PHP.</p>
76
<p>Например, вот зарплаты тех, кто владеет фреймворком Lavarel:</p>
76
<p>Например, вот зарплаты тех, кто владеет фреймворком Lavarel:</p>
77
<ul><li>48 000 рублей для джунов</li>
77
<ul><li>48 000 рублей для джунов</li>
78
<li>149 000 рублей для мидлов</li>
78
<li>149 000 рублей для мидлов</li>
79
<li>233 000 рублей для сеньоров</li>
79
<li>233 000 рублей для сеньоров</li>
80
<li>275 00 рублей для тимлидов.</li>
80
<li>275 00 рублей для тимлидов.</li>
81
</ul><p>Зарплаты разработчиков, которые владеют фреймворком Symfony:</p>
81
</ul><p>Зарплаты разработчиков, которые владеют фреймворком Symfony:</p>
82
<ul><li>177 000 рублей для мидлов</li>
82
<ul><li>177 000 рублей для мидлов</li>
83
<li>264 000 рублей для сеньоров</li>
83
<li>264 000 рублей для сеньоров</li>
84
<li>301 000 рублей для тимлидов.</li>
84
<li>301 000 рублей для тимлидов.</li>
85
</ul><p>Эта информация собрана на основе зарплат уже работающих программистов. Вилка зарплат PHP-разработчиков в вакансиях:</p>
85
</ul><p>Эта информация собрана на основе зарплат уже работающих программистов. Вилка зарплат PHP-разработчиков в вакансиях:</p>
86
<ul><li>106 000 - 135 000 рублей у мидлов</li>
86
<ul><li>106 000 - 135 000 рублей у мидлов</li>
87
<li>от 213 000 рублей у сеньоров</li>
87
<li>от 213 000 рублей у сеньоров</li>
88
<li>от 220 000 рублей для тимлидов.</li>
88
<li>от 220 000 рублей для тимлидов.</li>
89
</ul><h2>С чего начать изучение РHP</h2>
89
</ul><h2>С чего начать изучение РHP</h2>
90
<p>Как мы уже сказали, синтаксис PHP основан на языках C и Java. Однако сам PHP более простой, чем оба эти языка программирования.</p>
90
<p>Как мы уже сказали, синтаксис PHP основан на языках C и Java. Однако сам PHP более простой, чем оба эти языка программирования.</p>
91
<p>Вот основные понятия, которые необходимо будет освоить, чтобы писать код на PHP.</p>
91
<p>Вот основные понятия, которые необходимо будет освоить, чтобы писать код на PHP.</p>
92
<h3>Переменные</h3>
92
<h3>Переменные</h3>
93
<p>Первое, с чем предстоит столкнуться новичку, который изучает PHP, - объявление переменных. В переменных хранят и обрабатывают данные.</p>
93
<p>Первое, с чем предстоит столкнуться новичку, который изучает PHP, - объявление переменных. В переменных хранят и обрабатывают данные.</p>
94
<h3>Операторы</h3>
94
<h3>Операторы</h3>
95
<p>Они нужны для выполнения различных операций. Например, операторы присвоения позволят дать переменной какое-либо значение. Операторы сравнения - возвращают ответ вида true или false (действительно или ложно). Арифметические операторы - могут складывать, вычитать, умножать и делить.</p>
95
<p>Они нужны для выполнения различных операций. Например, операторы присвоения позволят дать переменной какое-либо значение. Операторы сравнения - возвращают ответ вида true или false (действительно или ложно). Арифметические операторы - могут складывать, вычитать, умножать и делить.</p>
96
<h3>Оформление кода</h3>
96
<h3>Оформление кода</h3>
97
<p>В качестве стандарта в этом языке программирования<a>используют PSR-12</a>. Для структурирования кода на PHP используют отступы и пробелы. Нужно научиться их правильно применять, чтобы код был читабельным.</p>
97
<p>В качестве стандарта в этом языке программирования<a>используют PSR-12</a>. Для структурирования кода на PHP используют отступы и пробелы. Нужно научиться их правильно применять, чтобы код был читабельным.</p>
98
<p>А еще PHP - язык программирования, чувствительный к регистру символов. То есть переменные name и Name в PHP будут разными.</p>
98
<p>А еще PHP - язык программирования, чувствительный к регистру символов. То есть переменные name и Name в PHP будут разными.</p>
99
<h3>Типизация</h3>
99
<h3>Типизация</h3>
100
<p>В PHP есть разные типы данных. Например, строки, целые и дробные числа, логические значения.</p>
100
<p>В PHP есть разные типы данных. Например, строки, целые и дробные числа, логические значения.</p>
101
<p>У PHP динамическая типизация - это значит, что программисту не нужно указывать тип данных при объявлении переменной.</p>
101
<p>У PHP динамическая типизация - это значит, что программисту не нужно указывать тип данных при объявлении переменной.</p>
102
<h3>Классы и объекты</h3>
102
<h3>Классы и объекты</h3>
103
<p>PHP использует принципы объектно-ориентированного программирования. Так что основными сущностями в PHP будут объекты, которые объединяют в классы.</p>
103
<p>PHP использует принципы объектно-ориентированного программирования. Так что основными сущностями в PHP будут объекты, которые объединяют в классы.</p>
104
<p>У объектов есть свои наборы свойств - атрибуты и методы - типы операций, которые с ними можно выполнять.</p>
104
<p>У объектов есть свои наборы свойств - атрибуты и методы - типы операций, которые с ними можно выполнять.</p>
105
<h3>Константы</h3>
105
<h3>Константы</h3>
106
<p>В PHP так называют значения, которые не поддаются изменениям, что отличает их от переменных. В константе могут содержаться различные значения или целые массивы данных.</p>
106
<p>В PHP так называют значения, которые не поддаются изменениям, что отличает их от переменных. В константе могут содержаться различные значения или целые массивы данных.</p>
107
<p>Это самые простые понятия. Их знания будет достаточно для того, чтобы писать самый простой код на PHP.</p>
107
<p>Это самые простые понятия. Их знания будет достаточно для того, чтобы писать самый простой код на PHP.</p>
108
<p>Но чтобы стать профессиональным разработчиком, придется углубиться в особенности PHP. Новичкам нужно освоить:</p>
108
<p>Но чтобы стать профессиональным разработчиком, придется углубиться в особенности PHP. Новичкам нужно освоить:</p>
109
<ul><li><strong>Пространство имен</strong>. Это специфический способ создания элементов. Он необходим для того, чтобы можно было использовать одинаковые имена функций в одном проекте и избегать ошибок в коде на PHP.</li>
109
<ul><li><strong>Пространство имен</strong>. Это специфический способ создания элементов. Он необходим для того, чтобы можно было использовать одинаковые имена функций в одном проекте и избегать ошибок в коде на PHP.</li>
110
<li><strong>Управляющие конструкции</strong>. Их в PHP шесть: условные операторы, циклы, конструкции включения, объявления, выбора и возврата значений. Программист должен понимать, как использовать их при написании кода.</li>
110
<li><strong>Управляющие конструкции</strong>. Их в PHP шесть: условные операторы, циклы, конструкции включения, объявления, выбора и возврата значений. Программист должен понимать, как использовать их при написании кода.</li>
111
<li><strong>Строковые функции</strong>. Они позволяют работать с данными в PHP, изменять значение, возвращать, искать определенную информацию и так далее.</li>
111
<li><strong>Строковые функции</strong>. Они позволяют работать с данными в PHP, изменять значение, возвращать, искать определенную информацию и так далее.</li>
112
<li><strong>Работа с файлами</strong>. В PHP операции требуют написания определенных скриптов. Необходимо знать, по каким правилам их составлять.</li>
112
<li><strong>Работа с файлами</strong>. В PHP операции требуют написания определенных скриптов. Необходимо знать, по каким правилам их составлять.</li>
113
</ul><p>Также после изучения основ PHP можно переходить к изучению фреймворков.</p>
113
</ul><p>Также после изучения основ PHP можно переходить к изучению фреймворков.</p>
114
<h2>Фреймворки для PHP</h2>
114
<h2>Фреймворки для PHP</h2>
115
<p>Фреймворки - это "каркасы" приложений, наборы готового кода. У PHP множество таких инструментов, но мы кратко рассмотрим самые популярные из них.</p>
115
<p>Фреймворки - это "каркасы" приложений, наборы готового кода. У PHP множество таких инструментов, но мы кратко рассмотрим самые популярные из них.</p>
116
<p><strong><a>Laravel</a></strong>- опенсорсный фреймворк с самым низким порогом входа, с него можно начинать знакомство с возможностями языка. Laravel позволяет упростить рутинные задачи, например, взять готовые решения для авторизации или маршрутизации приложения.</p>
116
<p><strong><a>Laravel</a></strong>- опенсорсный фреймворк с самым низким порогом входа, с него можно начинать знакомство с возможностями языка. Laravel позволяет упростить рутинные задачи, например, взять готовые решения для авторизации или маршрутизации приложения.</p>
117
<p><strong><a>Slim</a></strong>- это минималистичный фреймворк для разработки веб-приложений на PHP. Он предназначен для быстрого создания RESTful API и веб-сервисов.</p>
117
<p><strong><a>Slim</a></strong>- это минималистичный фреймворк для разработки веб-приложений на PHP. Он предназначен для быстрого создания RESTful API и веб-сервисов.</p>
118
<p><strong><a>Symfony</a></strong>- самая масштабная библиотека-фреймворк на PHP. Она существует с 2005 года и к нынешнему моменту стала огромной инфраструктурой. Symfony сложнее предыдущих фреймворков, зато позволяет создавать крупные и нагруженные веб-сервисы. К ее плюсам относят хорошо проработанную систему внутреннего тестирования.</p>
118
<p><strong><a>Symfony</a></strong>- самая масштабная библиотека-фреймворк на PHP. Она существует с 2005 года и к нынешнему моменту стала огромной инфраструктурой. Symfony сложнее предыдущих фреймворков, зато позволяет создавать крупные и нагруженные веб-сервисы. К ее плюсам относят хорошо проработанную систему внутреннего тестирования.</p>
119
<p><strong><a>Yii</a></strong>- еще один фреймворк с низким порогом входа: для начала работы с ним достаточно знать PHP на уровне новичка. Он стал популярным благодаря тому, что обеспечивает высокую производительность и имеет множество компонентов. В основе Yii лежит генератор кода, который создает стандартные структуры, используя решения других разработчиков.</p>
119
<p><strong><a>Yii</a></strong>- еще один фреймворк с низким порогом входа: для начала работы с ним достаточно знать PHP на уровне новичка. Он стал популярным благодаря тому, что обеспечивает высокую производительность и имеет множество компонентов. В основе Yii лежит генератор кода, который создает стандартные структуры, используя решения других разработчиков.</p>
120
<h2>Что еще нужно знать для программирования на PHP</h2>
120
<h2>Что еще нужно знать для программирования на PHP</h2>
121
<p>Знания самого языка программирования PHP недостаточно, чтобы стать разработчиком. Необходимо освоить технологии, которые позволят полностью понимать процесс создания сайтов и теоретические основы программирования.</p>
121
<p>Знания самого языка программирования PHP недостаточно, чтобы стать разработчиком. Необходимо освоить технологии, которые позволят полностью понимать процесс создания сайтов и теоретические основы программирования.</p>
122
<h3>Сетевые протоколы</h3>
122
<h3>Сетевые протоколы</h3>
123
<p>Их используют для передачи информации между пользовательскими компьютерами и серверами. Любой веб-программист должен хорошо знать, как работают эти технологии и из чего состоит современная клиент-серверная архитектура, что такое хостинг, домен, и как ведут себя разные браузеры.</p>
123
<p>Их используют для передачи информации между пользовательскими компьютерами и серверами. Любой веб-программист должен хорошо знать, как работают эти технологии и из чего состоит современная клиент-серверная архитектура, что такое хостинг, домен, и как ведут себя разные браузеры.</p>
124
<h3>Операционные системы</h3>
124
<h3>Операционные системы</h3>
125
<p>Нужно иметь базовое понимание как работает Linux. Ему нужно уделить особое внимание, так как Linux используют в качестве операционной системы для серверов. Разработчик должен уметь работать с командной строкой.</p>
125
<p>Нужно иметь базовое понимание как работает Linux. Ему нужно уделить особое внимание, так как Linux используют в качестве операционной системы для серверов. Разработчик должен уметь работать с командной строкой.</p>
126
<h3>HTML и CSS</h3>
126
<h3>HTML и CSS</h3>
127
<p>Эти языки - основа любой веб-страницы. HTML - язык разметки, а CSS - каскадные таблицы стилей. Разработчик должен понимать, как устроена интернет-страница и знать основы верстки, то есть, размещения элементов на ней.</p>
127
<p>Эти языки - основа любой веб-страницы. HTML - язык разметки, а CSS - каскадные таблицы стилей. Разработчик должен понимать, как устроена интернет-страница и знать основы верстки, то есть, размещения элементов на ней.</p>
128
<h3>Базы данных</h3>
128
<h3>Базы данных</h3>
129
<p>В них хранят информацию на серверах. Базы данных бывают реляционными и нереляционными. К первым относятся PostgreSQL и MySQL, ко вторым - MongoDB. Программисту необходимо понимать, чем они различаются, как устроены, а также освоить язык запросов - SQL.</p>
129
<p>В них хранят информацию на серверах. Базы данных бывают реляционными и нереляционными. К первым относятся PostgreSQL и MySQL, ко вторым - MongoDB. Программисту необходимо понимать, чем они различаются, как устроены, а также освоить язык запросов - SQL.</p>
130
<h3>API</h3>
130
<h3>API</h3>
131
<p><a>API</a>- это наборы методов и правил, которые позволяют взаимодействовать с другими платформами, добавляя их функционал в свое приложение. Например, на многих сайтах есть интеграция с картами. Разработчик должен уметь настраивать зависимость с API других сайтов и проектировать собственные.</p>
131
<p><a>API</a>- это наборы методов и правил, которые позволяют взаимодействовать с другими платформами, добавляя их функционал в свое приложение. Например, на многих сайтах есть интеграция с картами. Разработчик должен уметь настраивать зависимость с API других сайтов и проектировать собственные.</p>
132
<h3>Системы контроля версий</h3>
132
<h3>Системы контроля версий</h3>
133
<p>Системы контроля версий - это инструмент, позволяющий отслеживать изменения в коде. Разработчику нужно уметь им пользоваться. Также придется освоить GitHub - это платформа для хостинга с системой контроля версий. С ее помощью программисты ведут совместную работу над проектом и делятся друг с другом результатами своего труда.</p>
133
<p>Системы контроля версий - это инструмент, позволяющий отслеживать изменения в коде. Разработчику нужно уметь им пользоваться. Также придется освоить GitHub - это платформа для хостинга с системой контроля версий. С ее помощью программисты ведут совместную работу над проектом и делятся друг с другом результатами своего труда.</p>
134
<h3>Веб-серверы</h3>
134
<h3>Веб-серверы</h3>
135
<p>Разработчики должны понимать, как устроены веб-серверы. Сейчас используют в основном Apache и Nginx, суммарно на них приходится<a>половина интернет-трафика</a>в мире.</p>
135
<p>Разработчики должны понимать, как устроены веб-серверы. Сейчас используют в основном Apache и Nginx, суммарно на них приходится<a>половина интернет-трафика</a>в мире.</p>
136
<h3>Безопасность</h3>
136
<h3>Безопасность</h3>
137
<p>Современные веб-приложения часто подвергаются атакам, а разработчику нужно понимать, как с ними бороться. Для этого необходимо знать методы защиты, например, от SQL-инъекций и CSRF.</p>
137
<p>Современные веб-приложения часто подвергаются атакам, а разработчику нужно понимать, как с ними бороться. Для этого необходимо знать методы защиты, например, от SQL-инъекций и CSRF.</p>
138
<h3>Тестирование</h3>
138
<h3>Тестирование</h3>
139
<p>В коммерческой разработке за процесс контроля качества отвечают отдельные специалисты, тестировщики или QA-инженеры. Но программист должен уметь проводить первоначальное тестирование своего кода.</p>
139
<p>В коммерческой разработке за процесс контроля качества отвечают отдельные специалисты, тестировщики или QA-инженеры. Но программист должен уметь проводить первоначальное тестирование своего кода.</p>
140
<p>Для этого пишут автоматические тесты, с помощью которых разработчики проверяют программы на работоспособность.</p>
140
<p>Для этого пишут автоматические тесты, с помощью которых разработчики проверяют программы на работоспособность.</p>
141
<h3>Основы объектно-ориентированного программирования</h3>
141
<h3>Основы объектно-ориентированного программирования</h3>
142
<p>ООП - парадигма или набор правил, по которым пишут код. PHP-программист должен знать, как применять его, потому что сейчас она доминирует в коммерческой разработке. ООП позволяет писать расширяемый и поддерживаемый код.</p>
142
<p>ООП - парадигма или набор правил, по которым пишут код. PHP-программист должен знать, как применять его, потому что сейчас она доминирует в коммерческой разработке. ООП позволяет писать расширяемый и поддерживаемый код.</p>
143
<h2>Как выбрать редактор кода или среду для разработки на PHP</h2>
143
<h2>Как выбрать редактор кода или среду для разработки на PHP</h2>
144
<p>На первом этапе сложная среда разработки вроде<a>PHPStorm</a>не нужна - для новичка IDE будет слишком нагруженной. При работе с ней можно получить эффект магии: многие процессы будут непонятны. Так что для обучения лучше выбрать более простые редакторы. К тому же эта среда разработки платная.</p>
144
<p>На первом этапе сложная среда разработки вроде<a>PHPStorm</a>не нужна - для новичка IDE будет слишком нагруженной. При работе с ней можно получить эффект магии: многие процессы будут непонятны. Так что для обучения лучше выбрать более простые редакторы. К тому же эта среда разработки платная.</p>
145
<p><a>VSCode</a>, напротив, быстро открывается, легко настраивается и позволяет относительно просто подключать дополнительные фичи. Например, инструменты для взаимодействия с базой данных или с кэшем.</p>
145
<p><a>VSCode</a>, напротив, быстро открывается, легко настраивается и позволяет относительно просто подключать дополнительные фичи. Например, инструменты для взаимодействия с базой данных или с кэшем.</p>
146
<h2>Какие ресурсы использовать для изучения PHP</h2>
146
<h2>Какие ресурсы использовать для изучения PHP</h2>
147
<p>Мы уже говорили, что при изучении PHP важно уделять много внимания теории, а не только учиться писать код. Сам язык программирования дает очень размытое представление о том, как его компоненты работают на базовом уровне.</p>
147
<p>Мы уже говорили, что при изучении PHP важно уделять много внимания теории, а не только учиться писать код. Сам язык программирования дает очень размытое представление о том, как его компоненты работают на базовом уровне.</p>
148
<blockquote><p>Чтобы изучить теорию, можно записаться на курсы - например, в Хекслете есть<a>бесплатный курс по основам PHP</a>. Вы познакомитесь с экосистемой PHP, ключевыми возможностями языка, а также узнаете о чистых функциях и именовании. В итоге научитесь использовать и определять функции, искать и анализировать ошибки в коде, а также писать несложные программы на PHP.</p>
148
<blockquote><p>Чтобы изучить теорию, можно записаться на курсы - например, в Хекслете есть<a>бесплатный курс по основам PHP</a>. Вы познакомитесь с экосистемой PHP, ключевыми возможностями языка, а также узнаете о чистых функциях и именовании. В итоге научитесь использовать и определять функции, искать и анализировать ошибки в коде, а также писать несложные программы на PHP.</p>
149
</blockquote><p>Также можно почитать книги. Вот несколько книг, которые мы советуем прочитать:</p>
149
</blockquote><p>Также можно почитать книги. Вот несколько книг, которые мы советуем прочитать:</p>
150
<ul><li><a>"Грокаем алгоритмы. Иллюстрированное пособие для программистов и любопытствующих"</a>, Адитья Бхаргава</li>
150
<ul><li><a>"Грокаем алгоритмы. Иллюстрированное пособие для программистов и любопытствующих"</a>, Адитья Бхаргава</li>
151
<li><a>"Код: тайный язык информатики"</a>, Чарльз Петцольд</li>
151
<li><a>"Код: тайный язык информатики"</a>, Чарльз Петцольд</li>
152
<li><a>"Идеальный программист"</a>, Роберт Мартин</li>
152
<li><a>"Идеальный программист"</a>, Роберт Мартин</li>
153
<li><a>"Совершенный код"</a>, Стив Макконнелл.</li>
153
<li><a>"Совершенный код"</a>, Стив Макконнелл.</li>
154
</ul><p>Еще есть полезный сайт<a>PHP: The Right Way</a>, где собрана обширная база материалов для разработчиков разных уровней. И также есть классный<a>репозиторий на GitHub</a>, где собраны полезные инструменты для PHP-разработчиков - тоже советуем изучить.</p>
154
</ul><p>Еще есть полезный сайт<a>PHP: The Right Way</a>, где собрана обширная база материалов для разработчиков разных уровней. И также есть классный<a>репозиторий на GitHub</a>, где собраны полезные инструменты для PHP-разработчиков - тоже советуем изучить.</p>
155
<h2>Где тренироваться</h2>
155
<h2>Где тренироваться</h2>
156
<p>Соревнования помогают развивать навыки написания кода и учат видеть неочевидные пути решения задач. Вот самые популярные платформы для таких соревнований:</p>
156
<p>Соревнования помогают развивать навыки написания кода и учат видеть неочевидные пути решения задач. Вот самые популярные платформы для таких соревнований:</p>
157
<p><strong><a>Codebattle</a></strong>. Платформа по решению задач. Пользователь может выбрать один из языков программирования, например, PHP, и решать задачу на скорость, соревнуясь с соперником. Есть возможность пригласить в игру друзей или кодить наперегонки с незнакомыми пользователями.</p>
157
<p><strong><a>Codebattle</a></strong>. Платформа по решению задач. Пользователь может выбрать один из языков программирования, например, PHP, и решать задачу на скорость, соревнуясь с соперником. Есть возможность пригласить в игру друзей или кодить наперегонки с незнакомыми пользователями.</p>
158
<p><strong><a>Codewars</a></strong>. Платформа с соревнованиями для разработчиков разных уровней подготовки. Все решения участников публикуются в открытом доступе после завершения раунда. Это важный элемент обучения: можно решать задачу несколько дней в 100 строк кода, а можно сделать то же самое за несколько часов и пять строк. Например, с помощью готовых функций.</p>
158
<p><strong><a>Codewars</a></strong>. Платформа с соревнованиями для разработчиков разных уровней подготовки. Все решения участников публикуются в открытом доступе после завершения раунда. Это важный элемент обучения: можно решать задачу несколько дней в 100 строк кода, а можно сделать то же самое за несколько часов и пять строк. Например, с помощью готовых функций.</p>
159
<p><strong><a>Hackerrank</a></strong>. Кроме соревнований на платформе есть раздел подготовки к интервью с самыми популярными и актуальными вопросами. Например, есть блоки по массивам, объектам и другим сущностям - с объяснением, как это работает, и с задачами на закрепление знаний.</p>
159
<p><strong><a>Hackerrank</a></strong>. Кроме соревнований на платформе есть раздел подготовки к интервью с самыми популярными и актуальными вопросами. Например, есть блоки по массивам, объектам и другим сущностям - с объяснением, как это работает, и с задачами на закрепление знаний.</p>
160
<p><strong><a>Leetcode</a></strong>. Раздел Learn с теорией и практикой для ее проработки помогает понять логику программистских задач и научиться решать их практически с нуля.</p>
160
<p><strong><a>Leetcode</a></strong>. Раздел Learn с теорией и практикой для ее проработки помогает понять логику программистских задач и научиться решать их практически с нуля.</p>
161
<p><strong><a>Тестовые задания от Хекслета</a></strong>. Здесь мы собрали большой пул опенсорс-проектов и реальных тестовых заданий на должность PHP-разработчика. Рекомендуем пройти их для прокачки навыков кода и пополнения портфолио.</p>
161
<p><strong><a>Тестовые задания от Хекслета</a></strong>. Здесь мы собрали большой пул опенсорс-проектов и реальных тестовых заданий на должность PHP-разработчика. Рекомендуем пройти их для прокачки навыков кода и пополнения портфолио.</p>
162
<h2>Как стать PHP-разработчиком</h2>
162
<h2>Как стать PHP-разработчиком</h2>
163
<p>Лучший способ прокачать свои навыки практической разработки - принять участие в реальном проекте. PHP - язык с открытым исходным кодом и он традиционно любим в среде разработчиков свободно распространяемого ПО.</p>
163
<p>Лучший способ прокачать свои навыки практической разработки - принять участие в реальном проекте. PHP - язык с открытым исходным кодом и он традиционно любим в среде разработчиков свободно распространяемого ПО.</p>
164
<p>У Хекслета есть свой опенсорс-проект -<a>Hexlet SICP</a>. Это трекер прохождения SICP. Участники отмечают пройденные материалы, отслеживают прогресс других пользователей. Проект работает на Laravel.</p>
164
<p>У Хекслета есть свой опенсорс-проект -<a>Hexlet SICP</a>. Это трекер прохождения SICP. Участники отмечают пройденные материалы, отслеживают прогресс других пользователей. Проект работает на Laravel.</p>
165
<p>Для поиска других опенсорс-проектов можно использовать сайт<a>GoodFirstIssue</a>. На нем размещают задачи, которые доступны для начинающих разработчиков. Искать их можно по тегу "good first issue". Его можно использовать и для поиска на GitHub.</p>
165
<p>Для поиска других опенсорс-проектов можно использовать сайт<a>GoodFirstIssue</a>. На нем размещают задачи, которые доступны для начинающих разработчиков. Искать их можно по тегу "good first issue". Его можно использовать и для поиска на GitHub.</p>
166
<p>У Хекслета тоже есть множество опенсорс-проектов, в которых могут принять участие все желающие - как самые начинающие разработчики, так и программисты с опытом. Полный список наших опенсорс проектов мы приводим в нашем<a>большом гайде "Как участвовать в жизни Хекслета"</a>.</p>
166
<p>У Хекслета тоже есть множество опенсорс-проектов, в которых могут принять участие все желающие - как самые начинающие разработчики, так и программисты с опытом. Полный список наших опенсорс проектов мы приводим в нашем<a>большом гайде "Как участвовать в жизни Хекслета"</a>.</p>