Зачем нужен php
Содержание:
- Почему именно PHP
- Важные аспекты функционального программирования
- Комментирование кода
- Правила написания кода
- История языка
- Формирование страниц «на лету»
- Логические или реляционные операторы
- Важные термины руководства по ООП в PHP
- Сколько зарабатывают PHP-программисты? Средние зарплаты специалистов
- Сервер RoadRunner
- Логическое ИЛИ (OR и ||)
- Возможности PHP
- Функции в PHP
- Как стать PHP-программистом? Что нужно знать для начала работы?
- Функция var_dump
- Для чего нужен PHP
- Различия между константами и переменными в языке PHP для чайников
- Установка и использование
- PHP vs ASP.NET vs JSP vs CFML
- Итоги
Почему именно PHP
Компания TIOBE регулярно формирует статистику популярности языков программирования. Больше двадцати лет PHP удерживается в десятке популярных языков программирования.
Популярность языков программирования по версии TIOBE в октябре 2019 года
PHP даёт большую свободу разработчикам — он одинаково хорошо работает на всех популярных системах, включая Windows, Linux и OS X. Разработчики могут выбрать удобный им веб-сервер и базу данных для работы с PHP. Такой широкий выбор возможен благодаря многолетней поддержке сообщества и наличию модулей для работы почти с любым набором программ.
Новые версии PHP выходят регулярно — в них улучшается производительность и добавляются новые возможности. Язык не сдаёт позиции и со временем становится только лучше. Сегодня, как и несколько лет назад, PHP может стать прекрасным выбором для нового веб-проекта или первым языком при обучении программированию.
Если вы хотите научиться создавать собственные сайты на PHP, пройдите интерактивный курс «Основы PHP» и прочитайте учебник — это станет хорошей базой для того, чтобы выучить язык и стать профессионалом.
Важные аспекты функционального программирования
Начнём с терминов. Википедия определяет функциональное программирование как “парадигму программирования, в которой процесс вычисления трактуется как вычисление значений функций в математическом понимании последних”. В данном способе программирования главным объектом манипуляции являются функции, в то время как в императивном программировании главным принципом является последовательное выполнение команд для достижения желаемого результата.
Когда я сказал, что главным объектом манипуляции являются функции, я имел в виду, что с ними мы можем делать всё, что угодно: передавать как аргументы в другие функции, определять функции в функциях, использовать функции в качестве возвращаемых значений! В общем, кругом одни функции.
Теперь давайте подойдём ближе к некоторым особенностями функционального программирования.
Комментирование кода
В общем случае комментарии запрещены (НЕ «всегда»). Любой участок кода, который необходимо выделить или прокомментировать, надо выносить в отдельный метод.
Комментарии должны быть расположены перед объявлением классов, переменных и методов и быть оформлены в соответствии с PHPDoc. Комментарий перед классом должен содержать описание бизнес-логики и отражать его назначение с приведением примеров использования.
Однострочный комментарии обозначаются символами , а многострочный .
Готовые алгоритмы, взятые из внешнего источника, должны быть помечены ссылкой на источник.
Правила написания кода
Везде, где имеет смысл, должнно быть прописано
В функциях/методах вместо отсутствующего скалярного значения используется . и пустую строку нельзя использовать в качестве показателя отсутствия значения.
Нельзя изменять переменные, которые передаются в метод на вход (исключение — если эта переменная объект).
Нельзя нескольким переменным присваивать одно и то же значение. Для проверки наличия ключа в ассоциативном массиве используется , а не . Нельзя смешивать в массиве строковые и числовые ключи. Нельзя сортировать ассоциативные массивы.
Строки обрамляются одинарными кавычками. Двойные кавычки используются только, если:
- Внутри строки должны быть одинарные кавычки
- Внутри строки используется подстановка переменных
- Внутри строки используются спец. символы , , и т.д.
Вместо лишней конкатенации используем подстановку переменных в двойных кавычках
В методах должна быть использована максимально возможная типизация, включая тип возвращаемого значения(). Все параметры и их типы должны быть описаны в объявлении метода либо в PHPDoc. Методы названия, которых начинаются c и , должны выбрасывать исключения и не возвращать значения.
Все методы класса по умолчанию должны быть . Если метод используется наследниками класса, то он объявляется . Если используется сторонними классами, тогда .
Если метод может вернуть , то желательно реализовать шаблон проектирования Null object, или выбросить исключение, или вернуть объект особого случая (пример: пустой массив).
При возврате из метода данных типа — недопустимо писать , всегда использовать конструкцию или . приведен для примера, можно использовать любые ключи в неограниченном количестве.
Метод должен явно отличать нормальные ситуации от исключительных.
По умолчанию тексты исключений не должны показываться пользователю. Они предназначены для логирования и отладки. Текст исключения можно показать пользователю, если оно явно для этого предназначено.
В условном операторе должно проверяться исключительно значение. В сравнении не переменных используется строгое сравнение с приведением типа (), автоматическое приведение и нестрогое сравнение не используются.
Плохо:
Хорошо:
История языка
Изначально PHP расшифровывался как Personal Home Page Tools — инструменты для создания персональных страниц. Дело в том, что раньше, чтобы сделать функциональный сайт, чаще всего использовали C, Perl и CGI-скрипты. Звучит сложно, на деле — тоже сложно. Единственным способом сделать что-то своё и не изучать при этом три тома по программированию был PHP.
Язык HTML недостаточно гибкий и умеет не так много, как хотелось бы. Разработчики PHP решили расширить возможности гипертекста и сделали такой язык, который можно встраивать прямо в HTML-код, чтобы они работали вместе. Для этого используют операторы или или .
Например, можно сделать так:
В результате на странице получится строчка: «Привет! А вы знаете, что этот код написан на PHP?»
Ещё можно создавать целые PHP-файлы и писать весь код там, а потом просто подключать эти файлы в нужный момент. Получается, что с PHP можно работать в двух режимах: писать код прямо в коде страницы или выносить всё в отдельные файлы.
Формирование страниц «на лету»
Предположим, у нас есть библиотека с тысячей книг, и мы хотим сделать для неё сайт. По задумке, на каждой странице нужна информация о книге: имя автора, описание и фотография обложки. Если бы книг было десять, то ничего страшного — можно вручную сделать страницу для каждой. Но для библиотеки из тысячи книг нужно создать тысячу разных статичных страниц.
«Всегда выбирай шаблон.»
Возможно, у нас есть достаточно времени, чтобы создать тысячу файлов с уникальным содержимым. Но если после создания последней страницы мы решим добавить везде каталожный номер книги или режим работы библиотеки, то придётся повторно отредактировать все файлы. Получается, любое изменение структуры или информации на страницах потребует изменений во всех созданных файлах.
PHP помогает решить эту задачу — мы можем создать одну страницу и показывать на ней информацию о той книге, которая нам нужна прямо сейчас. Такой способ называется динамическим формированием страниц на бэкенде.
Бэкенд (back-end) — это часть сайта, которая находится на сервере, получает запрос от браузера, выполняет запрошенные действия и отправляет информацию обратно. Такой подход применяется повсеместно в клиент-серверном программном обеспечении, и PHP тоже может решать такие задачи. Язык прекрасно справляется с ролью бэкенда для мобильных, десктопных или веб-приложений.
Как формируются страницы
PHP как раз нужен для динамического формирования страниц на основе информации из базы данных.
Представим, что информация о нашей тысяче книг хранится в базе данных. Тогда мы можем легко сформировать страницу конкретной книги (допустим, мы ищем «Тёмную башню» Стивена Кинга).
- Мы пишем в поиске на сайте «Тёмная башня» и отправляем запрос на сервер. PHP получает запрос, соединяется с базой данных и находит нужную информацию.
- Полученную информацию PHP может обработать до нужного формата. Например, добавить теги или преобразовать в другой вид.
- PHP вставляет обложку, автора и описание книги в заранее подготовленный шаблон страницы. Шаблон — это почти полностью готовая страница или часть страницы, на которой не хватает только данных из базы. После того, как информация добавлена в шаблон, у нас есть полностью готовый код страниц.
- Этот код отправляется в браузер, и пользователь видит страницу с информацией о «Тёмной башне».
«Сервер всегда даст то, что нужно.»
Для пользователя страница будет выглядеть как обычно, но с точки зрения PHP — это динамически сформированная страница на основе шаблона. Если нам потребуется что-нибудь поменять: добавить блок информации, изменить вёрстку или отобразить ещё что-то из информации о книге, нужно будет изменить не тысячу файлов, а один, с шаблоном страницы. И когда мы будем заходить на сайт, все изменения сразу будут видны на всех страницах.
Логические или реляционные операторы
Логические операторы в основном они используются для работы с условными операторами и выражениями. Условные утверждения основаны на условиях. Кроме того, условие может быть выполнено или не может быть выполнено, поэтому результат условного оператора может быть истинным или ложным . Вот логические операторы вместе с синтаксисом и операциями, которые предоставляет нам PHP:
Оператор | название | Синтаксис | Операция | Пример |
---|---|---|---|---|
and | Логическое И | $x and $y | TRUE, если оба операнда TRUE, иначе FALSE | Пример » |
or | Логическое ИЛИ | $x or $y | TRUE, если любой из операндов TRUE, иначе FALSE | Пример » |
xor | Логический XOR | $x xor $y | TRUE, если один из операндов TRUE, и FALSE, если оба TRUE | Пример » |
&& | Логическое И | $x && $y | TRUE, если оба операнда TRUE, иначе FALSE | Пример » |
|| | Логическое ИЛИ | $x || $y | TRUE, если любой из операндов TRUE, иначе FALSE | Пример » |
! | Логическое НЕ | !$x | TRUE, если $x FALSE | Пример » |
Первый шаг к пониманию того, как работают логические операторы — это составить предложение, а не сразу смотреть на пример сценария. Предположим, нам нужно проверить некоторые аспекты двух переменных с именами $x и $y. Наше предложение может выглядеть так:
Если $x меньше 25 И $y больше 45, то PHP должен отобразить некоторое сообщение.
Здесь логический оператор — это часть предложения «И». Если бы мы выразили это на языке PHP, мы бы использовали описанные ранее операторы сравнения вместе с логическим оператором :
if (($x < 25) && ($y > 45)) echo 'Наше выражение истинно';
Точно так же, составим следующее предложение:
Если $x меньше 25 ИЛИ $y больше 45, отобразить сообщение.
Затем мы заменим «ИЛИ» на эквивалент PHP :
if (($x < 25) || ($y > 45)) echo 'Наше выражение истинно';
Следующий полезный логический оператор — это исключающее ИЛИ оператор . Оператор возвращает истину (true), если только одно из выражений оказывается истинным (true), но не оба. Например:
Если ИЛИ $x меньше 25 ИЛИ $y больше 45, отобразить сообщение
Мы представляем исключающее ‘или’ ключевым словом :
if (($x <25) xor ($y > 45)) echo 'Наше выражение истинно';
И последний логический оператор — это оператор НЕ, который просто инвертирует результат выражения. Символ представляет собой оператор НЕ и может использоваться следующим образом:
(10 > 1) // Возвращает True !(10 > 1) // возвращает false, потому что мы инвертировали результат с помощью логического НЕ
Важные термины руководства по ООП в PHP
Ниже приводится общее определение некоторых важных терминов, которые часто используются в объектно-ориентированном PHP.
Класс
В ООП в PHP класс — это тип данных, определенный программистом. Класс содержит данные и функции для работы с этими данными. Данные и функции имеют идентификатор доступа privat. Это означает, что они не видимы за пределами класса. Класс представляет собой шаблон или образец, с которого можно сделать столько копий или экземпляров, сколько необходимо.
Объект
Объект также известен как экземпляр. Когда устанавливается экземпляр класса, создается объект. Если класс — это образец, то объект — это конечное изделие, созданное с помощью образца. После того, как класс был определен, из него может быть создано множество объектов.
Переменная-член
Переменные, определенные в классе, называются переменными-членами. На самом деле это данные, содержащиеся в этом классе, они могут быть изменены функциями только этого класса. Обычно переменные-члены видимы только для этого класса и скрыты от других классов.
Функция-член
Функции, определенные в классе, называются функциями-членами. Они также не видны для других классов. Они используются для изменения переменных-членов, для доступа к данным объекта.
Конструктор
Конструктор — это особый тип функции-члена. Когда устанавливается класс, создается объект, эта функция вызывается автоматически и присваивает начальные значения переменным класса.
Наследование
В PHP 5 ООП наследование – это процесс, при котором класс (подкласс) получает все атрибуты и функции другого класса (суперкласса).
Инкапсуляция
Одна из важнейших концепций объектно-ориентированного программирования. Данные и функции, которые работают с этими данными, связываются между собой и не видны другим функциям.
Перезагрузка
Термин ООП, который означает, что функции, имеющие одинаковые имена, но разное количество аргументов, выполняются по-разному.
Сколько зарабатывают PHP-программисты? Средние зарплаты специалистов
Уровень зарплат PHP-разработчиков зависит от опыта работы и квалификации специалистов. В студиях и ИТ-компаниях можно рассчитывать на среднюю зарплату от 40-50 до 120 тыс. рублей в месяц.
Выделяются три уровня разработчиков:
- Junior,
- Middle,
-
Senior.
Соответственно, доходы растут по мере роста опыта, навыков и технологий, которыми владеет программист.
Вы повысите свою стоимость на рынке, если помимо умения программировать будете:
- эффективно работать в команде,
- научитесь самостоятельно решать проблемы,
- брать на себя ответственность,
- управлять другими разработчиками,
-
соблюдать дедлайны (сроки сдачи проектов).
На фрилансе PHP-разработчики также востребованы. Многим владельцам сайтов периодически нужно внести на проекты доработки, для чего требуются услуги PHP-программиста. Поэтому они ищут частных специалистов на биржах фриланса. Если вы будете делать работу хорошо и недорого (в разумных пределах), то к вам будут обращаться снова и снова. Вы быстро обрастете постоянными заказчиками, которые будут приносить стабильный доход.
Также PHP-программисты могут работать удаленно. Сейчас на рынке все больше таких вакансий. Если вы живете в небольшом городе, где вакансий разработчиков просто нет, вы можете спокойно работать через Интернет на студии и компании из других городов и даже стран.
Сервер RoadRunner
Наладить коммуникацию между Golang и РНР-процессами.
Управление процессами: создание, уничтожение, мониторинг воркеров.
Балансирование задач — эффективная раздача задач воркерам
Поскольку мы реализуем систему, которая блокирует отдельный воркер на отдельную конкретную приходящую задачу, важно сделать систему, которая быстро бы говорила, что процесс закончил работу и готов принимать следующую задачу.
HTTP-стек — передача данных HTTP-запроса воркеру. Это простая задача — написать входящую точку, в которую пользователь посылает запрос, который передается PHP и возвращается обратно.
Варианты взаимодействия между процессами
Embedding: встраивание PHP-интерпретатора непосредственно в Golang.go-phpShared Memory — использование общего пространства памяти,где процессы делят это пространство
HTTP-стек
Как реализуется:
- поднимает HTTP-точку на стороне Golang;
- получаем запрос;
- преобразуем в формат PSR-7;
- передаем запрос первому свободному воркеру;
- распаковываем запрос в PSR-7-объект;
- обрабатываем;
- генерируем ответ.
библиотеку Golang NET/HTTP.независимый фреймворкиммутабеленминимальная обвязка
Сборка
Логическое ИЛИ (OR и ||)
Оператор логическое ИЛИ обозначается как или . Он выполняет операцию «логическое ИЛИ» над двумя операндами. Если один или оба операнда имеют истинное значение, он возвращает . Если оба операнда имеют ложные значения, он возвращает . У вас вероятно возник вопрос, зачем же сделали два варианта одного оператора? Смысл двух разных вариантов оператора «логическое ИЛИ» в том, что они работают с различными приоритетами.
Сначала разберем как работает оператор . И так, если один или оба его операнда имеют истинное значение, он возвращает . Если оба операнда возвращают ложные значения, он вернет .
Оператор работает также как и оператор за одним исключением, если оператор используется с присваиванием, то сначала он вычислит и вернет значение левого операнда, в остальном он работает точно также как и оператор , т.е. если один или оба его операнда имеют истинное значение, он возвращает . Если оба операнда возвращают ложные значения, он вернёт .
Чтобы стало понятнее, как они работают, приведем следующий пример:
<?php // Оператор "||" имеет больший приоритет, чем "or" // Результат выражения (false || true) будет присвоен переменной $var1 // Действие приоритета: $var1 = (false || true) $var1 = false || true; echo $var1; // => 1 // Сначала переменной присваивается значение false, а затем вычисляется второй операнд // Действие приоритета: ($var2 = false) or true $var2 = false or true; echo $var2; // false не выводится // ($var3 = 0) or 3 $var3 = 0 or 3; echo "<br>$var3"; // => 0 ?>
Любые операторы сравнения и логические можно комбинировать в более сложные конструкции:
<?php $a = (6 == 6) || (4 <= 9); // или так echo ('c' != 'd') or ('A' === 'A'); ?>
Стоит упомянуть еще об одном важном моменте, касательно обоих операторов и. Оператор «логическое ИЛИ» начинает свои вычисления со своего левого операнда, если он возвращает , то правый операнд вычисляться не будет
Это позволяет экономить время исполнения, но нужно внимательно следить за тем, чтобы код, от которого может зависеть корректная работа программы, не был помещен в правый операнд.
Возможности PHP
Главным образом, область применения PHP сфокусирована на написание скриптов, работающих на стороне сервера. Таким образом, PHP способен выполнять всё то, что выполняет любая другая программа CGI. Например, обрабатывать данных форм, генерировать динамические страницы, отсылать и принимать cookies. Но PHP способен выполнять и множество других задач.
Существуют три основных области, где используется PHP.
- Создание скриптов для выполнения на стороне сервера. PHP наиболее широко используется именно таким образом. Все, что вам понадобится, это парсер PHP (в виде программы CGI или серверного модуля), вебсервер и браузер. Чтобы Вы могли просматривать результаты выполнения PHP-скриптов в браузере, вам нужен работающий вебсервер и установленный PHP. За более подробными сведениями обратитесь к подразделу установка PHP.
- Создание скриптов для выполнения в командной строке. Вы можете создать PHP-скрипт, способный запускаться вне зависимости от вебсервера и браузера. Все, что вам потребуется — парсер PHP. Такой способ использования PHP идеально подходит для скриптов, которые должны выполняться регулярно, например, с помощью cron (на платформах *nix или Linux) или с помощью планировщика задач (Task Scheduler) на платформах Windows. Эти скрипты также могут быть использованы в задачах простой обработки текстов. Дополнительная информация находится здесь.
- Создание приложений GUI, выполняющихся на стороне клиента. Возможно, PHP является не самым лучшим языком для создания подобных приложений, но, если вы очень хорошо знаете PHP и хотели бы использовать некоторые его возможности в своих клиент-приложениях, вы можете использовать PHP-GTK для создания таких приложений. Подобным образом Вы можете создавать и кросс-платформенные приложения. PHP-GTK является расширением PHP и не поставляется вместе с дистрибутивом PHP. Если вы заинтересованы, посетите сайт PHP-GTK.
Парсер — это программный продукт, основной функцией которого является получение необходимых данных, соответствующих заданным параметрам.
Парсить — собирать и систематизировать информацию, размещенную на определенных сайтах, с помощью специальных программ, автоматизирующих процесс.
PHP доступен для большинства операционных систем, включая Linux, многие модификации Unix (такие, как HP-UX, Solaris и OpenBSD), Microsoft Windows, Mac OS X, RISC OS, и многих других. (Существует даже версия PHP для OS/2. Неизвестно, правда, насколько соответствующая нынешним реалиям). Также в PHP включена поддержка большинства современных вебсерверов, таких, как Apache, Microsoft Internet Information Server, Personal Web Server, серверов Netscape и iPlanet, сервера Oreilly Website Pro, Caudium, Xitami, OmniHTTPd и многих других. Для большинства серверов PHP поставляется в качестве модуля, для других, поддерживающих стандарт CGI, PHP может функционировать в качестве процессора CGI.
Таким образом, выбирая PHP, вы получаете свободу выбора операционной системы и вебсервера. Кроме того, у вас появляется выбор между использованием процедурного или объектно-ориентированного программирования или же их сочетания.
PHP способен не только выдавать HTML. Возможности PHP включают формирование изображений, файлов PDF и даже роликов Flash (с использованием libswf и Ming), создаваемых «на лету». PHP также способен выдавать любые текстовые данные, такие, как XHTML и другие XML-файлы. PHP способен осуществлять автоматическую генерацию таких файлов и сохранять их в файловой системе вашего сервера, вместо того, чтобы отдавать клиенту, организуя, таким образом, кеш динамического содержания, расположенный на стороне сервера.
Функции в PHP
Функция — это команда, которая выполняет какие-либо действия, например расчёты, управление файлами и т.д.
Определить функцию просто — у неё после названия идут круглые скобки:
Функция phpinfo() выводит на экран информацию с текущими настройками PHP.
Результат работы функции phpinfo
Некоторые функции ожидают, что им передадут какое-нибудь значение. Например, функция округления ceil() ожидает число, которое она округлит:
Функция ceil() получает переданное нами значение 91.5, обрабатывает его (округляет до 92) и возвращает результат. А команда echo получает возвращённое функцией значение и выводит его на экран. Результатом работы этого скрипта будет 92.
Функции будут подробно рассмотрены в отдельном уроке.
Как стать PHP-программистом? Что нужно знать для начала работы?
В данный момент сайты редко пишут «с нуля». Чаще проекты разрабатывают на базе готовых систем управления (CMS) или фреймворков (наборов программ, из которых можно собрать сайт).
Если вы хотите стать PHP-программистом, вначале вам потребуется:
- Освоить язык разметки HTML и каскадные таблицы стилей CSS. Данные технологии применяются для создания внешнего вида страниц сайтов (макетов). В небольших студиях, куда берут новичков, PHP-программисты часто занимаются версткой макетов либо что-то в них правят. Поэтому вам потребуется знать HTML и CSS.
- Освоить язык JavaScript. Он позволяет создавать различные сценарии на страницах, формы, интерактивные элементы. Без знания JavaScript вы не сможете заниматься разработкой сайтов.
- Освоить язык PHP и стандарты написания кода PSR (PHP Standarts Recomendations).
- Освоить работу с базами данных MySQL.
-
Основательно разобраться в работе одной или нескольких популярных систем управления сайтами (CMS). Примеры таких систем: 1С Битрикс, WordPress, OpenCart и другие. Каждая система имеет свои особенности, которые необходимо знать.
Обучиться азам можно самостоятельно по курсам, выложенным на YouTube. Посмотрите список образовательных каналов по программированию, на которых имеются уроки по HTML, CSS, PHP, MySQL.
Где можно научиться программированию на языке PHP?
Если вы хотите получить знания системно и иметь наставников, которые помогут разобраться в предмете, рассмотрите вариант обучения на курсах. Есть специализированные сайты, где можно обучиться программированию онлайн.
Например, университет Нетология обучает программированию «с нуля». Занятия проводятся через интернет. Также есть сайт Skillbox, где можно пройти онлайн-курсы.
Примеры программ для желающих стать PHP-разработчиками:
Название курса |
Описание курса |
Вы научитесь писать код на PHP, изучите фреймворк Symfony, познакомитесь с разработкой сайтов на «1С Битрикс», освоите GIT. Отдельные лекции посвящены построению карьеры программиста. |
|
Подходит людям, которые хотят работать в сфере разработки сайтов. Здесь вы не только изучите PHP, но и научитесь верстать сайты, создавать скрипты на JavaScript и работать с фреймворками. |
|
Курс в Нетологии. Помимо PHP, здесь изучают различные технологии, которые используются при создании сайтов: HTML и CSS, JavaScript, библиотека React, фреймворк Laravel. |
Если раньше вы никак не сталкивались с веб-разработкой и хотите понять, интересна вам эта сфера или нет, можно пойти на бесплатный курс по основам HTML и CSS в Нетологии. Вам покажут примеры тегов и как их используют при разметке страниц. Вы сможете понять, насколько вам интереса сфера веб-разработки.
Как оставаться востребованным специалистом?
По мере набора опыта вы научитесь писать оптимальный код, оптимизировать его и распределять нагрузку. Вы станете более опытным и востребованным PHP-программистом.
Для дальнейшего развития нужно осваивать востребованные в веб-разработке навыки и технологии:
- Ajax.
- jQuery.
- Популярные фреймворки, на которых создают сайты.
-
Основы администрирования, чтобы уметь настраивать сервера, корректировать команды в файле .htaccess.
Вы можете возразить, что PHP-разработчик не должен заниматься версткой или администрированием серверов. С этим можно согласиться, однако на практике именно разработчика часто просят что-то поправить в верстке, внести настройки на сервер и т.д. В небольших веб-студиях PHP-программист часто является «мастером на все руки», ведь у компании нет возможности нанимать узких специалистов. Поэтому чем больше вы знаете в смежных сферах, тем быстрее сможете найти работу и зарабатывать больше денег.
Чтобы быть востребованным PHP-программистом, также необходимо:
- Уметь писать оптимальный код.
- Читать профильные ресурсы, чтобы быть в курсе новых технологий.
- Изучать теорию программирования.
- Выучить английский язык, чтобы иметь возможность читать документацию на иностранном языке, статьи и руководства на иностранных сайтах.
-
Уметь искать информацию в Интернете и находить решения проблем, с которыми вы впервые столкнулись.
Как видите, работа PHP-программиста не так проста, как казалось. Объем знаний, который требуется разработчику, велик. На освоение востребованных технологий может уйти длительное время.
Функция var_dump
Бывают ситуации, когда нам нужно посмотреть содержимое переменной, чтобы понять,
почему наш код работает не так, как мы хотели.
Обычно на помощь приходит функция echo, однако, бывают ситуации, когда echo не работает.
Например, если переменная является пустой строкой »,
то выведя ее содержимое на экран с помощью echo, мы ничего не увидим.
Вторая ситуация — когда переменная содержит строку с пробелами по краям, например:
Для решения описанных выше проблем следует использовать функцию var_dump(),
которая предназначена для отладки кода и позволяет выводить значения переменных и их тип.
С помощью этой функции мы можем увидеть, что переменная пуста,
можем подсчитать количество пробелов по краям строки, можем увидеть,
что переменная логическая и имеет значение true или false (об этих значениях чуть позже).
Пример использования var_dump():
Для чего нужен PHP
Собирать страницы из модулей. Если помните, PHP-код можно встраивать в HTML-страницы, а можно сохранять как отдельные файлы. В этом случае мы получаем мини-модули, каждый из которых отвечает за что-то одно. Например, в одном мы пишем, как будет выглядеть шапка сайта, в другом — меню, третий файл будет отвечать за подвал, четвёртый — за блок с отзывами о товарах.
PHP возьмёт файл header.php, в котором мы написали, как должна выглядеть шапка сайта, и поставит её в начало страницы. То же самое сделает и с подвалом — файлом footer.php, и так будет на каждой странице товара. Получается, что нам не нужно писать один и тот же код шапки и подвала на каждой странице, достаточно сделать это в одном месте, а потом подключать одной строчкой.
Создавать CMS и движки для сайтов. Такие модульные возможности PHP привели к тому, что большинство современных систем управления контентом на сайтах написаны на PHP. Смотрите сами:
Если вы на бесплатном хостинге используете какой-то инструмент для создания или поддержки сайта, скорее всего, он тоже будет написан на PHP.
Работать с формами и данными на странице. HTML плохо умеет работать с формами и отправлять куда-то данные, которые вы вводите в поля регистрации. PHP справляется с этим гораздо лучше: вы говорите, из какого поля что нужно взять и по какому адресу отправить, а всё остальное интерпретатор делает за вас.
Запоминать пользователей и делать формы авторизации. Если вам нужно быстро написать свою форму регистрации на сайте или запоминать посетителей даже без регистрации, то PHP — самый простой вариант решения этой задачи. Единственное, что нужно знать — как работать с базами данных, где хранятся записи о пользователях, потому что PHP это тоже умеет.
Различия между константами и переменными в языке PHP для чайников
- У констант нет приставки в виде знака доллара ($).
- Константы можно определить только с помощью функции define(), а не присваиванием значения.
- Константы могут быть определены и доступны в любом месте без учета области видимости.
- Константы не могут быть определены или аннулированы после первоначального объявления.
- Константы могут иметь только скалярные значения.
В этой статье я перечислил базовые понятия языка PHP для чайников. Теперь пора ознакомиться с конструкциям этого языка и перейти, непосредственно, к программированию. Об этом моя следующая статья — PHP программирование для чайников.
Установка и использование
На нашем курсе мы будем работать с версией PHP 7.1
Где скачать PHP?
Мы рекомендуем использовать программную сборку OpenServer. После загрузки и установки на вашем компьютере появятся свежая версия PHP, веб-сервер, база данных, и много других программ и инструментов для удобной работы. Подробнее об установке и использовании мы рассказываем на первой лекции.
Как выглядит PHP-сценарий
Типичный PHP-сценарий — это набор выражений. Каждое выражение начинается с новой строчки и заканчивается точкой с запятой.
Выражение — это инструкция, которая приказывает PHP-интерпретатору выполнить одно действие, например, сложить два числа или вывести на экран информацию. Давайте посмотрим на самый простой сценарий. Он будет выводить на экран одну строку: «Привет, Мир!»:
Важно отметить, что любой PHP-сценарий обязательно начинается с такой строки: — так мы сообщаем веб-серверу, что дальше в файле находится код на языке PHP. В нашем примере сценарий состоит из всего одной инструкции:
В нашем примере сценарий состоит из всего одной инструкции:
Здесь мы просим функцию вывести на экран наш текст — «Привет, Мир!». Это можно рассматривать как подлежащее и сказуемое в русском языке, где функция — это сказуемое, а «Привет, Мир!» — подлежащее.
Как мы уже знаем, PHP можно встроить в статичные HTML-файлы и модифицировать их с помощью инструкций. Вот как будет выглядеть тот же пример с выводом текста, но расположенный внутри HTML:
Обратите внимание, что в этом примере мы использовали дополнительный фрагмент —. С его помощью мы сообщаем серверу, где заканчивается наш PHP-сценарий
В случае, если наш код последний в документе, и после него ничего не следует, этот фрагмент не обязателен.
Потренироваться вставлять код на PHP в разметку можно в этом задании.
PHP vs ASP.NET vs JSP vs CFML
ASP – Active Server Pages. JSP – Java Server Pages. CFML – Cold Fusion Markup Language.
В таблице ниже язык программирования PHP сравнивается с различными серверными языками.
Свойство | PHP | ASP | JSP | CFML |
Обучаемость | Быстро | Дольше чем PHP | Дольше чем PHP | Дольше чем PHP |
Хостинг | Поддерживается практически всеми хостерами. | Необходим выделенный сервер. | Относительно хорошая. | Необходим выделенный сервер. |
Open Source | Да | Нет | Да | Доступны коммерческая и open source версии |
Поддержка веб-сервисов | Встроенная | Используется фреймворк .NET | Используются дополнительные библиотеки | Встроенная |
Интеграция с HTML | Простая | Достаточно сложная | Достаточно сложная | Простая |
Поддержка MySQL | Нативная | Потребуются сторонние драйверы | Потребуются сторонние драйверы | В текущей версии есть нативная поддержка. В прежних версиях используется ODBC |
Дополнение другими языками | Да | Нет | При помощи Java-классов и библиотек | Да |
Итоги
- Увеличили скорость реакции точек приложения в 4 раза по сравнению с PHP-FPM.
- Полностью избавились от ошибок 502 под нагрузками. При пиковых нагрузках сервер просто ждет чуть дольше и отвечает так, как если бы нагрузок не было.
- После оптимизации утечек памяти воркеры висят в памяти до 2-х месяцев. Это помогает при написании распределенных приложений, поскольку все запросы между сервисами уже прокэшированы на уровне сокетов.
- Используем Keep-Alive. Это существенно ускоряет общение между распределенной системой.
- Внутри реальной инфраструктуры все помещаем в Alpine Docker в Kubernetes. Система деплоя и сборки проекта теперь проще. Все, что требуется — это собрать кастомный RoadRunner build под проект, положить в проект в Docker, залить Docker-образ, и после этого спокойно загружать наш pod в Kubernetes.
- По реальному таймингу одного из проектов на отдельные точки, которые не имеют доступа к БД, среднее время ответа 0,33 мс.