+7 (747) 236 7503   mail@creoad.kz
Ежедневно с 12:00 до 22:00

Язык программирования PHP

Ему ежегодно пророчили исчезновение из-за невостребованности. Но спустя годы он по-прежнему в топе. Встречайте самый распространенный язык — PHP.

Что за язык PHP и почему он так популярен
PHP: Hypertext Preprocessor (изначально Personal Home Page Tools, «Инструменты для создания персональных веб-страниц») — один из лидирующих языков современной веб-разработки. Его отцом считается датский программист Расмус Лердорф, который в 1994 году создал набор скриптов на Perl — ту самую «персональную домашнюю страницу», которая легла в основу PHP.

Со временем к работе над ним подключились разработчики со всего мира. PHP — один из старейших языков в рамках open source-проекта. Сейчас его поддерживает и разрабатывает группа энтузиастов во главе с компанией Zend Technologies. Ей руководят Зеев Сураски и Энди Гутманс: в 1997 году они создали третью версию PHP и активно развивают язык по сегодняшний день.

Первое свойство: интерпретируемость
Главная характеристика PHP — интерпретируемость. В отличие от Java, которая компилируется, а затем запускается в работу, PHP создается во время обращения к нему. Человек открывает сайт, на сервер посылается запрос, и в это время компилируется код. Каждый скрипт компилируется в реальном времени, а затем выполняется.

Приводим пример кода:

<?php
/**
* Класс для сохранения файлов, кроме изображений
*/

class Application {
protected $_image = null; // файл, с которым нужно работать

/**
* метод сохраняет файл на диск
*
* [id153965260|@param] string $path — путь к файлу новый
* [id153965260|@param] srting $imagePath — путь старый
* [id16226053|@return] boolean
*/
public function saveFile($imagePath, $path){

$result = file_get_contents($imagePath, $path);

$nameDir = explode(‘/’,$path);

$newNameDir= ‘files/’.$nameDir[1].’/’.$nameDir[2].’/’.$nameDir[3];
mkdir($newNameDir, 0777, true);

$resultWrite = file_put_contents($path, $result);
return $resultWrite;
}
}

Благодаря этому свойству PHP — очень гибкий язык. Например, Java-программист вводит название класса один раз — теперь оно неизменно. PHP же компилируется в рантайме и можно подставить любое название класса из переменной.

Однако ради гибкости разработчик жертвует скоростью работы сайта. В случае с Java программу создают, а затем запускают. В случае с PHP приходится занимать время пользователя на процесс компиляции кода.

Второе свойство: динамическая типизация
Языки программирования бывают:

1) со статической типизацией;

2) с динамической типизацией.

В первом случае тип переменной определен жестко и заранее. Если это число, программист напишет тип int. Если строка — string. Во втором случае переменная может быть одновременно числом, строкой, массивом, объектом — чем угодно. Одной переменной можно присвоить число, затем массив, объект — и язык программирования это позволит. PHP относится ко второй группе.

Но есть проблема
Проблема динамической типизации в том, что она приводит к уменьшению скорости работы и потреблению большого количества оперативной памяти. Но динамическая типизация гибкая и удобная, поэтому PHP так популярен.

Команда разработки PHP сейчас трудится над тем, чтобы он занимал меньше памяти при работе, но сохранил гибкость статически нетипизированного языка.

Обзор версий: между первой и седьмой
Версии с первой по третью были «сырыми»: мало возможностей, хотя для создания простых сайтов их хватало. С версии 5.4 PHP стал отлаженной технологией. До этого было слишком много нюансов, и работать с ними было непросто.

Релизы 5.5 и 5.6 — серьезные, проверенные временем вещи. Они отлично себя показали и достаточно защищены от инъекций и возможностей взлома.

Шестую версию пропустили: она должна была поддерживать Unicode на уровне ядра, но релиз не состоялся. «PHP6 был амбициозным, но отстойным. Вот почему мы занялись PHP 7, в процессе пропустив шестую версию», — прокомментировал в своем блоге Vilson Duka, один из разработчиков.

Анимационное видео Питера Кокота о развитии ключевых модулей PHP в течение21 года жизни языка.
Седьмая версия считается революционной в плане скорости. 5.6 медленно работала с массивами и вообще с переменными: обработка статически нетипизированных данных происходила долго. Строка обрабатывалась в 60 раз медленнее, чем на C#. Это не бросается в глаза — речь о долях секунды. Но когда у тебя миллиард пользователей, как на Facebook, скорость критична.

HipHop и прорыв в скорости
Facebook написан на PHP — проблему нужно было решать. Их программисты создали для пятой версии собственный интерпретатор языка. Они компилировали его изначально в промежуточные коды, а затем отправляли в обычный интерпретатор Zend Engine. Программисты Facebook ввели статическую типизацию и ускорили работу языка в два раза. Это стало настоящим прорывом. Транслятор назвали HHVM, или HPHP Compiler — «HipHop для языка PHP».

Но команда разработки PHP плотно занялась массивами. Итогом стала седьмая версия, которая работала быстрее HHVM. При этом статической типизации в PHP7 по-прежнему почти нет. Только в параметрах функции — но это так мало, что можно считать, будто нет.

С версии 7.0 до 7.3, которая сейчас в бета-тестировании, язык ускорялся — разница видна по замерам:

Результаты бенчмарков версий PHP на Bolt CMS 3.4.8
7.3 станет последним релизом: поддерживать и править ошибки будут, но ничего принципиально нового не появится.

Будущее PHP: восьмая версия
Главная задача — сделать PHP быстрым при сохранении гибкости динамического языка. Разработчики понимают, что в дальнейшем нужно приходить к статической типизации. Сейчас рассматривают опциональный вариант, когда ее можно включать в определенных частях скрипта. Это наилучший путь из возможных.

Восьмая версия появится ориентировочно в 2020–2022 годах. На open source-платформах изменения принимаются общим голосованием совета разработчиков. Сейчас идет тестирование нововведений в PHP 8.

В мире PHP ничего не происходит без движения сообщества.

Расмус Лердорф

создатель PHP

Статическую типизацию планировали ввести в седьмой версии, но она не прошла голосование: нашлись изъяны. Ошибки исправили, и теперь мир разработки ждет возможность ее отключения одной командой в коде.

PHP частично написан на языке С, и в восьмой версии хотят полностью отойти от него. Также реализуют работу с матрицами: она ускорится в пять раз по сравнению с седьмой версией.

Для чего используют PHP
Единственное применение — это веб-разработка. На PHP невозможно сделать десктопные приложения, он не используется в мобильной разработке — только веб. Но сегодня эта область огромна. Даже некоторые десктопные приложения уходят в веб — тот же Microsoft Office имеет облачный сервис. Ранее считалось, что PHP не подходит для больших высоконагруженных проектов, но опыт Facebook доказывает обратное. «Авито» — еще один пример удачной реализации. Подробнее о том, как использовать PHP — в нашей статье Для чего используют PHP и почему его ненавидят.

С чего начать изучение
PHP легко изучить самостоятельно за счет низкого порога входа. Буквально за вечер можно прочитать документацию и написать скрипт, который будет возвращать данные на сайт. Другие языки (C#, Java) имеют более высокий порог вхождения, и одного дня мало, чтобы создать работающий код. Сегодня на российском рынке труда из-за низкого порога входа PHP-кодеров много, и большинство — невысокого уровня.

PHP стабильно находится в топе популярных языков программирования, а в 2004 году получил звание «Язык года», несмотря на предсказания о его скорой смерти на всем пути развития. Источник.
Хороший разработчик PHP фактически применяет те же паттерны программирования, что и в статически типизированных языках. На PHP даже сложнее программировать, и вот почему. Если в Java или C# допустить алгоритмическую ошибку, например, присвоить переменной не тот тип, — они «дадут по рукам». PHP же это пропустит, и программист сломает голову: что не так? Ведь все работает, но неправильно. Из-за этого на современном рынке хорошим программистам PHP готовы платить чек не ниже, чем другим разработчикам. Но хорошего специалиста сложно найти.

Чтобы учить язык, нужно задать себе вопрос: «Для чего он мне?» Учить ради процесса учебы — бесполезно, ведь без практического применения знания забудутся. Нужно поставить конкретную задачу и искать решение.

Начинайте изучать PHP в интернете: сегодня выпускается много видеоуроков, онлайн-лекций и тренажеров. Рекомендуем наш курс «PHP-разработчик», где вы прокачаете свой уровень с нулевого до профессионального.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Наш блог

Ознакомьтесь с нашими новостями!
17th Сен 2021
Что такое Вебпак (Webpack)

Webpack– это статический модульный сборщик для приложений на JavaScript. Официальный сайт проекта:https://webpack.js.org/ Сегодня поговорим, что это за технология, в каких […]

Узнать больше
16th Сен 2021
Что такое анкорные ссылки

С ростом числа коммерческих проектов в интернете поддерживать объем продаж на должном уровне становится все сложнее. Чтобы нарастить клиентскую базу […]

Узнать больше
16th Сен 2021
Система электронного обучения и тестирования Moodle: обзор возможностей

Moodle (расшифровывается как Modular Object-Oriented Dynamic Learning Environment) — бесплатная система электронного обучения. Это открытое веб-приложение, на базе которого можно […]

Узнать больше

Напишите нам

Оставьте информацию о себе, мы перезвоним вам чтобы узнать детали

Отправьте нам сообщение

Контактная информация

Мы находимся

010000 г. Нур-Султан

Напишите нам

mail@creoad.kz

Creo logo