ресурс для начинающих веб-разработчиков
комплексные веб-услуги по созданию сайтов

Справочный материал по основным языкам программирования и верстки сайтов.

Готовая методика создания простых и сложных динамичных сайтов, с использованием PHP и MySQL.

Использование веб-редактора Adobe Dreamweaver в разработке сайтов.

Использование графических редакторов Adobe Flash, Adobe Photoshop, Adobe Fireworks в подготовке веб-графики.

Разработка веб-сайтов под "ключ".

Разработка отдельных фрагментов сайтов, консультации по вопросам верстки веб-страниц и веб-программирования.

PHP7 - что это? Немного истории

PHP7

История версии

Жизнь не стоит на месте, все течет, все меняется. Особенно заметны изменения в области Интернета. Каких 7-8 лет назад мало кто слышал, например о Facebook или Twitter, В контакте или Однокласcниках. За прошедшие годы сеть обросла десятками, если не сотнями подобных проектов, охвативших сотни миллионов пользователей. Такие проекты стали реальностью благодаря языку PHP. Язык, специально созданный для работы в Интернете официально появился 1998 году и быстро обрел популярность среди веб-разработчиков. 2005 году выходит следующая версия - РНР 5, построенная на движке Zend Engine 2.

Так как язык получил огромное распространение, а в его разработке участвовало множество энтузиастов и команд, преследующих самые разные цели, к этому времени было накоплено множество проблем с безопасностью, с синтаксисом и поддержкой многобайтовых кодировок. Поэтому следующей целью бьла назначена версия РНР6, которая должна была решить как минимум проблему с поддержкой UTF-8 на уровне ядра.

Однако эта цель никогда не была достигнута, версия РНР6, разрабатываемая с 2005 по 2010 год, так никогда не была выпущена. Изменения в интерпретаторе, подготовленные в рамках этой работы, были слиты с основной веткой 5.х и выпущены в виде релиза РНР 5.3.

РНР, создававшийся в расчете на средние сайты, не выходящие за пределы одного сервера, испытывал серьезные проблемы с производительностью, потреблением памяти в таких гигантских WеЬ-приложениях как Facebook. Особенно остро это проявлялось на фоне языков конкурентов.

Разумеется, такая огромнейшая компания, как FaceЬook, не могла мириться с положением дел, когда основной бизнес, приносящий миллиарды долларов, основан на языке, не совсем предназначенном для столь масштабных проектов, как социальная сеть. При том, что сообщество, ответственное за язык, несколько стагнацирует. Замена языка, вероятно, не представляет труда для небольшого сайта, но не для огромной империи, которая обслуживается множеством дата-центров, в интеллектуальную собственность которой вложено множество человеко-лет.

В недрах Facebook стартовал новый проект виртуальной машины, которая бы не тратила время на компиляцию, а сразу выполняла байт-код РНР с высокой эффективностью. Новый проект получил название HipHop Virtual Machine или сокращенно ННVМ.

По следам Facebook последовала и социальная сеть "ВКонтакте", хорошо известная российским пользователям Интернета. В 2014 году разработчики этой социальной сети представили транслятор РНР-кода в С++, который назвали КittenPНP или сокращенно КРНР.

Успехи социальных сетей в области создания альтернативных реализаций РНР побудило сообщество к выпуску новой, более эффективной версии РНР7 на новом движке Zend Engine 3, релиз которой состоялся в декабре 2015 года. Титанические усилия команды разработчиков позволили ускорить движок РНР7 в два раза, на фоне снижения потребления оперативной памяти. В версии РНР7 значительно улучшена поддержка 64-битных операционных систем.

Что нового в PHP7?

  1. новые операторы <=> и ??
  2. обработка ошибок реализована через механизм исключений, помимо существующего класса Exception, введен дополнительный класс Error, который позволяет перехватывать стандартные ошибки РНР;
  3. анонимные классы;
  4. поддержка скалярных типов аргументов и возвращаемых значений в функциях;
  5. введен специальный синтаксис \u{OOFFI для поддержки UТF-8 символов;
  6. массивы-константы;
  7. допускается использование конструкции list совместно с объектами, реализующими интерфейс ArrayAccess;
  8. предопределенный класс IntlChar для обеспечения поддержки символов UTF-8;
  9. класс Generator, представляющий генераторы РНР, получил метод getReturn(), позволяющий извлечь значение, возвращаемое ключевым словом return;
  10. делегирование генераторов с использованием ключевых слов yield from;
  11. реrулярные Реrl-выражения дополнены новой функцией preg_replace_callback_array();
  12. новые функции random_int() и random_bytes();
  13. параметры сессии теперь можно передавать через необязательный аргумент функции session_start();
  14. Помимо нововведений, часть устаревших конструкций и расширений были окончательно удалены из РНР. Среди них можно отметить:

  15. альтернативные теги <% и %>, а также <script language="php"> и </script>, которые можно бьmо использовать вместо тегов <?php и ?>;
  16. регулярные РОSIХ-выражения (еrеg-функции), вместо них рекомендуется использовать регулярные Реrl-выражения;
  17. расширение mysql, вместо него следует использовать либо объектно-ориентированное расширение mysqli, а лучше еще более новое расширение PDO;
  18. не допускается использование конструктора в стиле РНР 4, когда имя метода совпадает с именем класса.