Что представляет собой РНР 7? Возможности для программиста

РНР 7 -  возможности и перспективыЯзык программирования РНР 7 — серверный язык, при помощи которого можно создавать Web-сайты, причем как небольшие лендинги, состоящие из одной страницы, так и гигантские системы, использующие сотни и тысячи серверов. Элек­тронная энциклопедия Wikipedia, социальные сети Facebook, ’’ВКонтакте”, электронная площадка объявлений Avito созданы с использованием РНР.

Будучи одним из самых первых языков программирования, ориентированных на Web-разработку, РНР прошел длительный путь практически с самого начала заро­ждения Web. Поэтому в мире он остается одним из самых популярных и востребо­ванных языков.


Оглавление статьи[Показать]


 

Достоинства и недостатки PHP 7

В основе популярности РНР лежат следующие достоинства.

  • Ориентация на Web-разработку — РНР создавался, развивался и поддерживает­ся как язык для создания Web-сайтов. Многие конструкции и решения в нем созданы для удобства работы в Web-среде.
  • Кроссплатформенность — РНР перенесен на все основные операционные сис­темы: можно разрабатывать сайт в Windows, Mac OS X, а эксплуатировать на Linux-сервере. Сложности переноса будут минимальны и нивелироваться язы­ком.
  • Бесплатность — РНР является разработкой из мира свободного программного обеспечения, не потребуется платить ни за сам язык, ни за большинство сопут­ствующих программ (редакторы, Web-серверы, базы данных). Вдобавок боль­шинство программных продуктов, с которыми придется иметь дело, будут иметь доступный для изучения и модификации исходный код. Вложения могут потре­боваться при аренде доменного имени и сервера для публикации сайта в Интер­нете. Однако изучать РНР можно, не вкладывая ни копейки.
  • Низкий порог входа — изучить РНР и начать создавать на нем готовые прило­жения много проще, чем с использованием конкурирующих технологий (.NET, Python, Ruby, Go). Изучение PHP не закрывает для разработчика другие техно­логии, в Web сам язык — значительная, но меньшая часть используемых техно­логий. Знания, приемы работы, сопутствующие технологии (Web-серверы, базы данных, библиотеки, вспомогательные языки) пригодятся и в любой другой эко­системе, отличной от РНР. При создании собственного бизнеса собрать команду PHP-разработчиков зачастую проще и дешевле всего.

По закону сохранения, любая вещь, обладающая хоть каким-либо достоинством, имеет недостатки. Ими обладает и РНР 7.

  • Отсутствие лидера — многие технологии и языки имеют лидера, архитектора, который определяет облик технологии, задает вектор развития, принимает решение о том, что должно быть обязательно, а чего не будет никогда (Linux, Python, Ruby и т. п). В РНР лидера нет, многие решения и конструкции — это компромисс заинтересованных групп и исторически сложившихся реалий.
  • Непоследовательный синтаксис — при изучении языка РНР, особенно старой части, основанной на функциях, можно заметить, что часть функций имеет пре­фиксы array_, str_, часть не имеет. Параметры функций могут быть расположены не совсем логично и не так, как в другой функции этой же группы.
  • РНР — уже довольно долго живущий язык. Когда язык только появляется, он довольно элегантный и внутренне согласованный. По мере жизненного цикла язык обрастает дополнительными ключевыми словами, артефактами, устарев­шими конструкциями, которые вроде есть, работают, но которыми не рекомен­дуется пользоваться. У РНР была довольно бурная молодость, в ходе которой была отменена масса директив и приемов, которые на первый взгляд должны были облегчать разработку, а на практике оборачивались серьезными проблема­ми безопасности. Сам РНР, стартовавший как необъектно-ориентированный язык, в настоящий момент стал полноценным объектно-ориентированным язы­ком. Однако в нем полно старых процедурных артефактов, которыми придется пользоваться.
  • Сообщество PHP-разработчиков велико и разъединено, т. к. РНР — это одна из первых технологий для разработки Web-проектов, половина Интернета создана с его участием. В PHP-разработку одновременно было вовлечено огромное ко­личество программистов по всему миру. Все это породило большое число самых разных подходов, фреймворков и не совместимых друг с другом экосистем. Бо­лее того, благодаря усилиям мощных и влиятельных социальных сетей (в пер­вую очередь Facebook, '’ВКонтакте”) появились альтернативные реализации РНР. Это плохо, т. к. многие экосистемы внутри РНР не совместимы, а сообще­ство раздроблено и тратит силы на создание одних и тех же библиотек в рамках разных групп. Ситуация исправляется и при помощи PSR-стандартов. Разработ­чики договариваются о единых правилах и интерфейсах, обеспечивающих со­вместимость фреймворков, но этот процесс еще в начале пути, в то время как конкурирующие технологии (.NET, Ruby) уже имеют единую платформу для всех фреймворков.

 

Структура РНР 7

Язык РНР 7 имеет ядро и расширения языка. Между ядром и расширениями доволь­но трудно провести границу, т. к. многие расширения давно включены в состав яд­ра или распространяются в виде скомпилированных бинарных библиотек и легко устанавливаются.

Есть и другая часть — код, созданный на РНР, который условно можно поделить на следующие типы:

  • компоненты — библиотеки на РНР, которые собираются при помощи менедже­ра пакетов Composer;
  • фреймворки — готовые сборки, зачастую из компонентов, при помощи которых можно создавать сайты любой степени сложности. В книге, к сожалению, мы их не касаемся, однако если вы выберите РНР 7 в качестве основного языка разра­ботки, то не пройдете мимо них. На следующие РНР-фреймворки стоит обра­тить внимание: Symfony, Laravel, Zend, Yii. Всего их сотни, если не тысячи;
  • готовые приложения — готовые к использованию разработки на РНР. Это сис­темы управления контентом (Wordpress, Drupal), форумы (phpBB), Web- интерфейсы управления базами данных (phpMyAdmin, pgAdmin).

Книга, которую вы держите в руках, познакомит вас с языком; описанные выше системы созданы с использованием языка РНР, но требуют отдельного изучения, и, к сожалению, их обсуждение выходит за рамки моего блога.

 

Сопутствующие технологии

При помощи РНР 7 можно быстро разрабатывать Web-сайты, однако современные реализации РНР — это не самая быстрая и эффективная часть сайта. Поэтому для запуска сайта потребуются дополнительное программное обеспечение и техно­логии.

  • Web-сервер — программа, которая обеспечивает взаимодействие клиента и вашего приложения посредством протокола HTTP. На протяжении всей книги мы используем встроенный РНР-сервер, хотя для эксплуатации на­стоящего сайта потребуется Web-сервер nginx или Apache.
  • Сервер базы данных — данные нужно где-то хранить. В книге довольно под­робно рассматриваются две базы данных: PostgreSQL и Redis. Однако это далеко не все базы данных, которые вам встретят­ся на практике, да и каждая из затронутых заслуживает отдельной книги.
  • Система контроля версий Git, которая служит для хранения истории разработки, резервного копирования, доставки кода на сервер, организации командной рабо­ты. Работаете ли вы в коллективе или в одиночку — Git в настоящий момент превратился в основной инструмент современного программиста, какой бы язык программирования не был выбран в качестве базового.

Этот список можно продолжать и продолжать. Однако на самом деле можно начать даже без этого — опираясь просто на язык РНР.

Вас заинтересует / Intresting for you:

Что такое РНР?
Что такое РНР? 174 просмотров Natalia Thu, 07 Feb 2019, 16:31:57
Объект Navigator Javascript: и...
Объект Navigator Javascript: и... 1519 просмотров Денис Tue, 25 Sep 2018, 06:30:01
Установка PHP 7 на Windows
Установка PHP 7 на Windows 753 просмотров Zero Cool Wed, 17 Oct 2018, 11:56:42
2019: конец эпохи Internet Exp...
2019: конец эпохи Internet Exp... 303 просмотров Андрей Васенин Sun, 06 Jan 2019, 17:06:24