Программирование на языке php для чайников. часть 1
Содержание:
- Для чего нужен PHP
- Что делает и чем занимается PHP-программист
- Так что же такое PHP программирование?
- Что такое PHP
- Каррирование и частичное применение
- Что такое PHP скрипт
- А сложно ли будет изучать PHP с нуля?
- Сервер RoadRunner
- Что такое РНР
- Информация о процессоре
- Так с чего начать обучение?
- Установка и использование
- Магические константы
- Переменные языка РНР для чайников
- Сколько получают
- Функции в PHP
- Что же такое PHP программирование?
- Ускоряем приложение
Для чего нужен PHP
Собирать страницы из модулей. Если помните, PHP-код можно встраивать в HTML-страницы, а можно сохранять как отдельные файлы. В этом случае мы получаем мини-модули, каждый из которых отвечает за что-то одно. Например, в одном мы пишем, как будет выглядеть шапка сайта, в другом — меню, третий файл будет отвечать за подвал, четвёртый — за блок с отзывами о товарах.
<div>
<? include(«/includes/»); ?>
Тут можно вставить ссылку на модуль карточки товара или заполнить раздел информацией вручную. Но лучше модулем, как выше и ниже.
<? include(«/includes/»); ?>
</div>
PHP возьмёт файл header.php, в котором мы написали, как должна выглядеть шапка сайта, и поставит её в начало страницы. То же самое сделает и с подвалом — файлом footer.php, и так будет на каждой странице товара. Получается, что нам не нужно писать один и тот же код шапки и подвала на каждой странице, достаточно сделать это в одном месте, а потом подключать одной строчкой.
Создавать CMS и движки для сайтов. Такие модульные возможности PHP привели к тому, что большинство современных систем управления контентом на сайтах написаны на PHP. Смотрите сами:
Если вы на бесплатном хостинге используете какой-то инструмент для создания или поддержки сайта, скорее всего, он тоже будет написан на PHP.
Работать с формами и данными на странице. HTML плохо умеет работать с формами и отправлять куда-то данные, которые вы вводите в поля регистрации. PHP справляется с этим гораздо лучше: вы говорите, из какого поля что нужно взять и по какому адресу отправить, а всё остальное интерпретатор делает за вас.
Запоминать пользователей и делать формы авторизации. Если вам нужно быстро написать свою форму регистрации на сайте или запоминать посетителей даже без регистрации, то PHP — самый простой вариант решения этой задачи. Единственное, что нужно знать — как работать с базами данных, где хранятся записи о пользователях, потому что PHP это тоже умеет.
Что делает и чем занимается PHP-программист
Официальный логотип PHP
Основными обязанностями PHP-разработчика выступают:
- Создание сайтов, отдельных страниц или модулей, а также тестирование их работоспособности.
- Составление технической отчетности.
- Внедрение дополнительных внешних и внутренних систем на сайт.
- Оптимизация работы веб-ресурса, а также техническая поддержка (улучшение производительности, повышение безопасности и т. п.).
В обязанности программиста еще может входить:
- запуск сайта и дальнейшее его администрирование;
- поиск и устранение ошибок работы;
- улучшение функциональности;
- взаимодействие с другими специалистами.
Если коротко: он отвечает за разработку и обслуживание ресурса.
Подписывайтесь на наши новости
Одно письмо в неделю с самыми актуальными статьями + обзор digital-профессий!
*Нажимая «Подписаться» вы даете согласие на обработку персональных данных.
Так что же такое PHP программирование?
PHP – это язык программирования, также как и HTML и CSS.
Он не так уж сложен для изучения, как это может показаться вначале тем, кто решил взяться за него всерьез. Изучив всего несколько простых функций, вы уже сможете применять их на своем сайте, тем самым значительно повысив функциональность своего проекта.
Язык PHP может соседствовать в одном документе с языком HTML, так что вы можете вставлять код PHP в уже написанный HTML код. Эта особенность языка PHP позволяет вебмастеру добиться наибольшей свободы в своей работе.
Что имеется ввиду под выражением «добавить динамики»? То, что я имею ввиду — это возможность вариантности на сайте, в зависимости от того, какой запрос задает пользователь. Запрашивает ли он какую-то информацию в форме поиска, или, например, хочет выполнить какие-то вычисления – эти действия становятся возможными именно благодаря языку PHP.
Короче говоря, PHP используется для того, чтобы добавить функциональности сайту. С помощью применения одного html вы никогда бы не добились такого эффекта!
Вот несколько примеров того, что можно делать с помощью языка программирования PHP:
Математические вычисления.
PHP может выполнять все виды математических вычислений — от сложения, вычитания, умножения, деления до определения сегодняшней даты, дня недели и года.
PHP может хранить информацию пользователя.
То есть, пользователь может напрямую взаимодействовать со сценарием, например, вводить свои данные в форму контактов или в адресную книгу, задавать запрос через форму поиска, добавлять комментарии к статьям, заводить новые посты на форуме и т.д.
PHP может взаимодействовать с базами данных MySQL.
И, когда задействован этот пункт, то возможности практически безграничны.
Вы можете помещать информацию в базу данных, вы можете ее оттуда извлекать. Это позволит вам создавать новые страницы очень быстро, вы сможете разработать админ панель сайта, вы сможете разработать систему логинов и паролей, в конце концов, вы сможете создавать сложные динамические сайты.
С помощью PHP и различных библиотек вы сможете также управлять графикой сайта.
Например, вы сможете менять размер картинок, поворачивать их, менять их оттенок.
Ваши посетители смогут редактировать свои аватарки, а также благодаря этому возможно использование капчи на сайте. Также вы сможете, например, настроить различные дизайны для сайта соответственно времени суток и временам года.
И так далее, и тому подобное…
Список того, что можно сделать, применяя язык программирования PHP, огромен настолько, что можно очень долго перечислять все его возможности.
И это лишний раз доказывает, что знание PHP может принести большую пользу и множество перспектив человеку, изучающему сайтостроение, особенно тем, кто хочет сделать создание сайтов своим основным видом деятельности и зарабатывать на этом.
Автор статьи: Елена Лощилова.
Что такое PHP
Начнём с определения того, чем именно является PHP. Сложно в одном предложении дать полное представление об этом языке, поэтому опишем его следующими тремя характеристиками:
PHP — это препроцессор гипертекста (HTML).
PHP — это серверный язык программирования.
PHP — это скриптовый, интерпретируемый язык программирования.
Зачем нужен PHP
Поясним каждое из определений и узнаем, в каких задачах будет полезен PHP.
Основная задача PHP — это «оживление» HTML страниц.
Обычные HTML-страницы статичны. Статичность (или неизменность) означает, что после того, как страницу создали и загрузили на сайт, при каждом обращении к этой странице браузер покажет её любому пользователю в неизменном виде.
Но этого не всегда достаточно.
Почти всегда пользователи приходят на сайт за информацией, которая всё время меняется, и нужно отображать её актуальное состояние. Например:
- показать курс валют;
- подсказать погоду на завтра;
- вывести счётчик посещений страницы.
Если использовать только HTML, то решить такие задачи не получится. Здесь-то нам и понадобится PHP. Он принимает входящий запрос от веб-сервера, выполняет сценарий и возвращает веб-серверу результат в виде готового HTML-код. Сервер отправляет этот результат в браузер пользователю, который, в свою очередь, отображает её пользователю. После этого видно свежий курс валют, погоду, и что угодно ещё.
РНР позволяет изменять веб-страницу на сервере непосредственно перед тем, как она будет отправлена браузеру. Давайте разберёмся, как это работает. PHP умеет исполнять код — так называемые сценарии. В ходе исполнения PHP может изменить или динамически создать любой HTML-код, который и является результатом исполнения сценария. Затем сервер отправляет этот код браузеру. При этом браузеру не известно, как была сформирована данная страница — статично сверстана верстальщиком, или динамически создана при участии PHP
Это не важно, т.к. браузер всегда работает только с тем, что получил от сервера
Давайте запомним, что сценарий — это программа, которая находится на стороне сервера и запускается в ответ на запрос от браузера.
Теперь мы можем понять, почему PHP называют препроцессором гипертекста. Когда браузер запрашивает страницу с адресом, который кончается на , веб-сервер обращается к PHP, и просит его выполнить сценарий из файла по этому адресу.
Выполнение сценария также называют его интерпретацией, а сам PHP — интерпретатором.
Вы можете попрактиковаться в создании динамических страниц с помощью PHP в этом тренажёре.
Где используется PHP
Основная сфера применения языка PHP — это веб, то есть сайты, которые мы каждый день посещаем через браузер компьютера или смартфона
Важно понимать, что веб — это не весь интернет, а только самая большая и популярная его часть. Кроме веба через интернет работает электронная почта, мессенджеры, файлообменные сервисы, сетевые игры и многое другое
Практически каждый сайт, который есть в интернете, работает на PHP. Этот язык отлично подходит для любых динамических веб-сайтов, среди которых:
Каррирование и частичное применение
Функции частичного применения — это функции содержащие другие функции, которые работают с набором аргументов родителя.
В PHP мы можем создавать подобные функции при помощи замыканий. Ниже вы можете найти пример вычисления объёма коробки. Все аргументы являются необязательными. Однако, если передать меньше 3х параметров, то запустится ещё и другая внутренняя функция.
<?php $volume = function ($length = 0, $width = 0, $height = 0) use (&$volume) { $args = func_get_args(); $numArgs = func_num_args(); if ($numArgs == 3) { return $length * $width * $height; } else if ($numArgs < 3) { return function() use(&$volume, $args) { $newArgs = array_merge($args, func_get_args()); return call_user_func_array($volume, $newArgs); }; } else { throw new BadFunctionCallException("Too many arguments"); } };
В первой проверке мы проверяем количество аргументов. Если оно равно 3, то возвращаем результат. Если изначальное количество аргументов меньше, вызываем другую функцию, которая пытается найти решение с заданными данными.
Таким образом, мы можем вычислить размер коробки, передав сначала один аргумент, а потом и другие.
<?php $standardVolume = $volume(10); $vol = $standardVolume(5, 5); // 250
Каррирование — это специальный вид функции частичного применения, когда каждый аргумент может быть принят в отдельную функцию. Что-то типа f(x,y,z) to f(x)(y)(z). В PHP такой синтаксис невозможен, но реализовать принцип можно.
Что такое PHP скрипт
PHP-скрипт — это обычный текстовый файлик с расширением .php. Точно такой же, как html и css.
Но есть одно важное отличие:
Скрипты запускаются только через http-запросы в браузере. Это значит, что для запуска скрипта script.php необходимо в адресной строке браузера написать site.ru/script.php
Если скрипт не работает — проверь текущий URL. Если там будет что-то вроде file:///D:/openserver/domains/site.ru/script.php — это значит, что ты пытаешься не перейти на страницу сайта, а открыть сам PHP файлик в браузере. Это неправильно.
Веб-серверы чаще всего настроены так, что при заходе на главную страницу (например site.ru) автоматически запускается файл index.php или index.html, лежащий в корне сайта.
Создай в корневой папке сайта файл с названием index.php и открой его в своём текстовом редакторе. При наличии файла index.html его нужно удалить.
Если у тебя пока нет текстового редактора — рекомендую лёгкий и бесплатный Notepad++, он гораздо удобней встроенного в Windows блокнота.
Обязательно следи за кодировкой скриптов. Кодировка должна быть либо UTF-8 без BOM (если такая доступна в твоём редакторе), либо просто UTF-8.
Выбор кодировки в Notepad++
А сложно ли будет изучать PHP с нуля?
Всё будет зависеть от возраста и желания начинающего программиста. В первую очередь, стоит рассматривать востребованность языка. Эксперты подмечают, что не менее 85% сайтов на данный момент используют PHP как обычную практику написания сайтов. Однако никто не может гарантировать, что через лет тридцать понятие “веб-сайт” не потеряет своего смысла и технологии не зайдут настолько далеко, чтобы давать возможность полного погружения.
Если человек никогда ранее не имел дело с программированием и решил заняться вебом в 40-50 лет, потому что это крайне прибыльно, по словам интернет-маркетологов, то ему может быть сложно освоить даже базисы управления языком. Однако лишь практика и постоянная мотивация учиться и работать помогут ему побороть сложности. С такой же проблемой могут столкнуться и школьники, услышавшие о PHP от видеоблоггеров.
Грамотно подобранное учебное пособие (будь то чтение книги или работа с наставником), а также постоянная практика — вот, что поможет даже самому “ржавому чайнику” в компьютерах освоить PHP. Он же мало чем отличается от С++ или Pascal.
Сервер RoadRunner
Наладить коммуникацию между Golang и РНР-процессами.
Управление процессами: создание, уничтожение, мониторинг воркеров.
Балансирование задач — эффективная раздача задач воркерам
Поскольку мы реализуем систему, которая блокирует отдельный воркер на отдельную конкретную приходящую задачу, важно сделать систему, которая быстро бы говорила, что процесс закончил работу и готов принимать следующую задачу.
HTTP-стек — передача данных HTTP-запроса воркеру. Это простая задача — написать входящую точку, в которую пользователь посылает запрос, который передается PHP и возвращается обратно.
Варианты взаимодействия между процессами
Embedding: встраивание PHP-интерпретатора непосредственно в Golang.go-phpShared Memory — использование общего пространства памяти,где процессы делят это пространство
HTTP-стек
Как реализуется:
- поднимает HTTP-точку на стороне Golang;
- получаем запрос;
- преобразуем в формат PSR-7;
- передаем запрос первому свободному воркеру;
- распаковываем запрос в PSR-7-объект;
- обрабатываем;
- генерируем ответ.
библиотеку Golang NET/HTTP.независимый фреймворкиммутабеленминимальная обвязка
Сборка
Что такое РНР
В первой статье я кратко расскажу, что же представляет из себя РНР как язык и укажу на основные преимущества и недостатки его перед другими языками программирования. Идея РНР родилась в голове некого Расмуса Ледорфома(Rasmus Lerdorf). Как предполагается, где-то в конце 1994 года. Не так давно между прочим, и именно по этой причине — по причине молодости РНР, так мало есть ресурсов на его тему. Кстати, полная расшифровка РНР звучит так — Personal Home Page Tools. На великом и могучем это звучит примерно так — персональные инструменты для домашней странички. Ну примерно так. Так вот, в начале 1995 вышла коммерческая версия, которая была гораздо шире и функциональней, и именно ей было суждено завоевать признание тысяч (в те еще времена) web — мастеров. В 1998 году появился РНР3 — тот же язык, но гораздо более усовершенствованный и переписанный заново уже другими людьми. Он стал еще более популярным во всем мире. Но довольно истории.
Так что же это за зверь такой — РНР, и с чем его прикажете подавать? PHP Версии 3.0 — язык написания сценариев, внедренный в HTML. Многое из синтаксиса заимствовано из C, Java и Perl (это тоже языки программирования), с добавлением специфичных для PHP возможностей. Задача языка состоит в том, чтобы дать возможность Web-разработчикам легко и быстро создавать динамично изменяемые html-страницы. Уж что что, а это он делает великолепно! Это и есть основное преимущество РНР — его код внедряется прямо в HTML, причем никаких ограничений не существует. Единственное условие — не забывать открывать и закрывать теги, которыми ограничивается код РНР.
Что-бы сервер узнал, что в коде страницы кроме стандартного HTML есть код РНР, надо сказать ему об этом. Сделать это просто — достаточно в нужном файле изменить расширение со стандартных *.htm или *.html на *.phtml, *.php3 или *.php Желательно первый вариант. Хотя все эти вещи зависят от администратора сервера, где расположена Ваша страничка или Ваш сайт. Кстати, по умолчанию я подразумеваю, что у Вас уже есть сайт, или по крайней мере Вы представляете, как его сделать. И еще. Иногда можно услышать мнение, что РНР совсем не нужен, ведь есть SSI. Отвечаю — РНР может делать тоже, что и SSI с такой же легкостью, но плюс к этому он может еще гораздо больше! Вот Вам и еще один плюс. Если Вы еще не определились, надо ли будет в какой то конкретный файл добавлять код РНР, смело ставьте расширение *.phtml. Дело в том, что весь код HTML интерпретатор РНР просто передаст браузеру как есть без ограничений. Из этого следует первое правило, которое Вам надо будет усвоить. Не перегружайте интерпретатор. Если есть выбор, пользуйтесь стандартным HTML-ом. Это не принципиально, но рекомендуется как признак профессионализма.
Еще один плюс РНР — это удивительная похожесть его синтаксиса с языками С, С++, Java и т.д. Точнее будет сказать, что РНР впитал все самое лучшее из этих языков и максимально избавился от их недостатков. Нет никакой необходимости выделять память, следить за типами переменных (в обычных условиях), определять переменные и т.д. Все улучшения коснулись уже 3 версии, но есть и недостатки. Один из основных — отсутствие возможности условных и безусловных переходов в скрипте. Это накладывает ограничения на большие скрипты. А точнее — ограничений нет, просто очень большие скрипты становится писать уже сложно. Впрочем, РНР разрабатывался именно как небольшие включения в HTML, и в этом качестве ему нет равных. А если учитывать еще и тот факт, что РНР удивительно легко интегрируется со всеми основными базами данных и позволяет делать много удивительных вещей. Например — прайсы с возможностью поиска информации. На CGI аналогичный скрипт получается много больше чем на РНР.
Информация о процессоре
Для этого необходимо использовать метод getrusage(). Но учтите, что на Windows эта функция работать не будет.
print_r(getrusage()); /* prints Array ( => 0 => 0 => 2 => 3 => 12692 => 764 => 3864 => 94 => 0 => 1 => 67 => 4 => 0 => 0 => 0 => 6269 => 0 ) */
Картина, изложенная выше, будет понятно тем, у кого есть опыт в системном администрировании. Для всех остальных предлагаем расшифровку:
- ru_oublock: количество операций блочной записи
- ru_inblock: количество операций блочного чтения
- ru_msgsnd: количество отправленных сообщений
- ru_msgrcv: количество принятых сообщений
- ru_maxrss: максимальный размер невыгружаемого набора
- ru_ixrss: общий объем разделяемой памяти
- ru_idrss: общий объем неразделяемых данных
- ru_minflt: количество используемых страниц памяти
- ru_majflt: количество ошибок отсутствия страниц
- ru_nsignals: количество принятых сигналов
- ru_nvcsw: количество переключений контекста процессом
- ru_nivcsw: количество принудительных переключений контекста
- ru_nswap: количество обращений к диску при подкачке страниц
- ru_utime.tv_usec: время работы в пользовательском режиме (микросекунды)
- ru_utime.tv_sec: время работы в пользовательском режиме (секунды)
- ru_stime.tv_usec: время работы в привилегированном режиме (микросекунды)
- ru_stime.tv_sec: время работы в привилегированном режиме (секунды)
Для того чтобы узнать какие ресурсы вашего процессора используются скриптом, вам необходимо значение ‘user time’ (время работы в пользовательском режиме) и ’system time’ (время работы в привилегированном режиме). Вы можете получить результат как в секундах, так и в микросекундах. Для того чтобы превратить общее количество секунд в десятичное число, вам необходимо разделить значение микросекунд на 1 миллион и добавить к значению секунд.
Запутанно как-то. Вот пример:
// отдыхаем 3 секунды sleep(3); $data = getrusage(); echo "User time: ". ($data + $data / 1000000); echo "System time: ". ($data + $data / 1000000); /* выводит User time: 0.011552 System time: 0 */
Хотя выполнение скрипта заняло около 3-х секунд, процессор не был сильно нагружен. Дело в том, что при вызове (sleep) скрипт практически не потребляет ресурсов процессора. Вообще существует множество задач, которые занимают значительное время, но при этом не используют процессор. К примеру, ожидание операций связанных с диском. Так что вы не всегда используете процессорное время в своих скриптах.
Вот ещё пример:
// пройтись 10 миллионов раз for($i=0;$i<10000000;$i++) { } $data = getrusage(); echo "User time: ". ($data + $data / 1000000); echo "System time: ". ($data + $data / 1000000); /* выводит User time: 1.424592 System time: 0.004204 */
Работа скрипта заняла 1.4 секунды процессорного времени. В данном случае, время системных вызовов вообще низкое.
Время работы в привилегированном режиме (System Time) – это время, которое процессор затрачивает на выполнение системных запросов к ядру от имени программы. Пример:
$start = microtime(true); // вызываем microtime каждые 3 секунды while(microtime(true) - $start < 3) { } $data = getrusage(); echo "User time: ". ($data + $data / 1000000); echo "System time: ". ($data + $data / 1000000); /* выводит User time: 1.088171 System time: 1.675315 */
Теперь системного времени затратилось намного больше, чем в прошлом примере. Всё благодаря методу microtime(), который использует ресурсы системы.
Однако следует отметить, что выведенное время может быть не точным, т.к. в данный момент времени ресурсы процессора используются и другими программами, что в результате может дать небольшую погрешность.
Так с чего начать обучение?
Для начала, нужно выбрать информационную базу, теорию, по которой в дальнейшем будет вестись изучение языка программирования. В роли “наставников” могут быть:
- Книги. Научной литературы по языку программирования PHP очень много: Игорь Симдянов, Дмитрий Котеров, Symphony выпустили несколько учебных пособий, разобрав по полочкам всё как для новичков, так и мастеров сферы создания сайтов. Остаётся лишь выбрать учебник по уровню и начинать изучение. Однако разбираться со всем и пробовать каждый код придётся самостоятельно: несмотря на то, что некоторые из представленных книг имеют задания для отработки и “набивания руки”, некоторые задания придётся придумывать себе самому.
- Найти “мастера”. Если удастся попасть в команду, специализирующуюся на создании фреймворков на PHP, это будет счастьем для новичка. Продвинутые разработчики не только научат, как взаимодействовать с языком программирования, но ещё и расскажут парочку тонкостей и поделятся модулями, сделанными во время работы. С другой стороны, как много времени придётся потратить, чтобы найти подходящую команду или даже одного человека, готового за просто так раздавать знания?
- Интернет-курсы. Они немного напоминают школьную или вузовскую практику изучения: человек получает видео или присутствует на вебинарах, а после выполняет домашнее задание по уроку, которое потом проверяют учителя. И вся эта система поддерживает дистанционное обучение. Это помогает контролировать учебный процесс, а также заставляет проявлять дисциплину — не хочется пропускать занятия, за которые сам заплатил.
Далее обучение PHP человека становится самостоятельным. Он может продолжать оттачивать навыки, создавая сайты и фреймворки для них, зарабатывать с помощью этого на фрилансе. Также есть возможность участвовать в тематических сообществах, где обсуждаются проблемы и вопросы, возникающие у других разработчиков.
Установка и использование
На нашем интенсиве мы будем работать с версией PHP 7.1
Где скачать PHP?
Мы рекомендуем использовать программную сборку OpenServer. После загрузки и установки на вашем компьютере появятся свежая версия PHP, веб-сервер, база данных, и много других программ и инструментов для удобной работы. Подробнее об установке и использовании мы рассказываем на первой лекции.
Как выглядит PHP-сценарий
Типичный PHP-сценарий — это набор выражений. Каждое выражение начинается с новой строчки и заканчивается точкой с запятой.
Выражение — это инструкция, которая приказывает PHP-интерпретатору выполнить одно действие, например, сложить два числа или вывести на экран информацию. Давайте посмотрим на самый простой сценарий. Он будет выводить на экран одну строку: «Привет, Мир!»:
Важно отметить, что любой PHP-сценарий обязательно начинается с такой строки: — так мы сообщаем веб-серверу, что дальше в файле находится код на языке PHP. В нашем примере сценарий состоит из всего одной инструкции:
В нашем примере сценарий состоит из всего одной инструкции:
Здесь мы просим функцию вывести на экран наш текст — «Привет, Мир!». Это можно рассматривать как подлежащее и сказуемое в русском языке, где функция — это сказуемое, а «Привет, Мир!» — подлежащее.
Как мы уже знаем, PHP можно встроить в статичные HTML-файлы и модифицировать их с помощью инструкций. Вот как будет выглядеть тот же пример с выводом текста, но расположенный внутри HTML:
Обратите внимание, что в этом примере мы использовали дополнительный фрагмент —. С его помощью мы сообщаем серверу, где заканчивается наш PHP-сценарий
В случае, если наш код последний в документе, и после него ничего не следует, этот фрагмент не обязателен.
Потренироваться вставлять код на PHP в разметку можно в этом задании.
Магические константы
В PHP существует множество магических констант, таких как номер текущей строки (__LINE__), путь к файлу (__FILE__), путь к каталогу (__DIR__), имя функции (__FUNCTION__), имя класса (__CLASS__), имя метода (__METHOD__) и пространства имён (__NAMESPACE__).
Все мы их рассматривать не будем. Посмотрим только лишь парочку:
// этот скрипт зависит от текущего расположения файла и // может вызвать проблемы, если его использовать из разных дирректорий require_once('config/database.php'); // этот скрипт не вызовет проблем require_once(dirname(__FILE__) . '/config/database.php');
Используйте __LINE__ при отладке скриптов:
// код // ... my_debug("some debug message", __LINE__); /* выведет Line 4: some debug message */ // ещё код // ... my_debug("another debug message", __LINE__); /* выведет Line 11: another debug message */ function my_debug($msg, $line) { echo "Line $line: $msg\n"; }
Переменные языка РНР для чайников
- Переменные – контейнеры для хранения данных. Данные, сохраняемые в переменной, называют значением этой переменной.
- Переменная имеет имя – последовательность букв, цифр и символа подчеркивания без пробелов и знаков препинания, начинающаяся обязательно с символа доллара ($), за которым должна следовать буква или символ подчеркивания.
- Правильные имена переменных: $_tel, $tmp, $my_, $address_234_45.
- Неправильные имена переменных: $234tel, my address, $tel:234.
- РНР является регистро-ависимым языком относительно имен переменных и констант. Однако ключевые слова могут использоваться в любом регистре.
Сколько получают
Оплата труда целиком и полностью зависит от квалификации разработчика и масштабности проекта:
- Junior. Это новички или люди, освоившие азы профессии (работа серверов, HTTP, пользовательские функции, управление базами данных). Таким сотрудникам обычно платят от 30 до 50 тысяч рублей.
- Middle. Добавляется умение работать с разными интерфейсами, встроенными классами и шаблонами. Зарплата – от 60 тысяч рублей.
- Senior. Это мастера, способные проектировать архитектуру сайта, вести и оптимизировать git-проекты, использовать WebSocket, Laravel и другие инструменты. Их зарплаты стартуют с отметки 100 тысяч рублей и могут быть больше в полтора-два раза.
В Москве уровень оплаты труда выше, чем в регионах, поскольку многие IT-компании, в том числе зарубежные, имеют в столице свои представительства. Однако возможность работать удаленно несколько сглаживает разницу, к тому же в больших городах можно устроиться в интернет-фирму или на крупное промышленное предприятие.
Функции в PHP
Функция — это команда, которая выполняет какие-либо действия, например расчёты, управление файлами и т.д.
Определить функцию просто — у неё после названия идут круглые скобки:
Функция phpinfo() выводит на экран информацию с текущими настройками PHP.
Результат работы функции phpinfo
Некоторые функции ожидают, что им передадут какое-нибудь значение. Например, функция округления ceil() ожидает число, которое она округлит:
Функция ceil() получает переданное нами значение 91.5, обрабатывает его (округляет до 92) и возвращает результат. А команда echo получает возвращённое функцией значение и выводит его на экран. Результатом работы этого скрипта будет 92.
Функции будут подробно рассмотрены в отдельном уроке.
Что же такое PHP программирование?
PHP(PHP: Hypertext Preprocessor) — это язык программирования общего назначения с открытым исходным кодом. PHP сконструирован специально для ведения Web-разработок и его код может внедряться непосредственно в HTML.
В области веб-программирования, в частности серверной части, PHP — один из популярных сценарных языков. Популярность в области построения веб-сайтов определяется наличием большого набора встроенных средств для разработки веб-приложений. Вот основные из них:
автоматическое извлечение POST и GET-параметров, а также переменных окружения веб-сервера в предопределённые массивы;
взаимодействие с различными системами управления базами данных (MySQL, MySQLi, SQLite, PostgreSQL, Oracle (OCI8), Oracle, Microsoft SQL Server, Sybase, ODBC, mSQL, IBM DB2, Cloudscape и Apache Derby, Informix, Ovrimos SQL, Lotus Notes, DB++, DBM, dBase, DBX, FrontBase, FilePro, Ingres II, SESAM, Firebird / InterBase, Paradox File Access, MaxDB, Интерфейс PDO);
автоматизированная отправка HTTP-заголовков;
работа с HTTP-авторизацией;
работа с cookies и сессиями;
работа с локальными и удалёнными файлами, сокетами;
обработка файлов, загружаемых на сервер;
работа с XForms.
Еще следует добавить, что PHP имеет высокий порог вхождения для новичков. Это легкий язык программирования, который можно самостоятельно выучить в домашних условиях, не посещая при этом курсы по обучению.
Выпущено достачно много хороших мануалов, которые могут стать настольной книгой для изучения данного языка программирования.
Ускоряем приложение
Обратиться к самому языку
- Использовать OPCache. Думаю, никто не запускает PHP на продакшн без включенного OPCache?
- Дождаться RFC: Preloading. Он позволит предзагружать набор файлов в виртуальную машину.
- JIT — серьезно ускоряет работу приложения на CPU-bound tasks. К сожалению, с задачами, связанными с базами данных, он не сильно поможет.
Использовать альтернативыПолностью переписать на другой язык. хранить состояние приложения в памяти
Проблемы долгоживущей модели
Утечки памяти.
- Пишите аккуратный код, используйте проверенные библиотеки.
- Активно мониторьте воркеры. Если подозреваете, что внутри процесса утекает память — превентивно меняйте его на аналог с меньшим лимитом, то есть просто на новую копию которая еще не успела накопить неочищенную память.
Утечки данных
- Не храните активного пользователя в глобальном контексте. Все данные, которые специфичны контексту запроса сбрасываем и очищаем перед последующим запросом.
- Аккуратно обращайтесь с данными сессий. Сессии в PHP — при классическом подходе это глобальный объект. Заворачивайте его правильно, чтобы при последующем запросе он сбрасывался.
Управление ресурсами
- Контролируйте соединения к БД. Если приложение висит в памяти месяц или два, то открытое соединение, скорее всего, за это время закроется: базу передеплоят, перезагрузят или firewall сбросит соединение. На уровне кода учитывайте reconnect или после каждого запроса сбрасывайте соединение и поднимайте его заново при следующем запросе.
- Избегайте долгоживущих file lock. Если ваш воркер пишет какую-то информацию в файл — проблем нет. Но если этот файл открыт и имеет на себе блокировку, то ни один другой процесс в вашей системе не будет иметь к нему доступа до момента освобождения блокировки.