Программирование на языке php для чайников. часть 2
Содержание:
- Зачем использовать ООП?
- Функция-шаблонизатор
- 5 последних уроков рубрики «PHP»
- Дробные курсы по PHP от GeekBrains
- Информация о процессоре
- Как работает HTTP, и зачем нам это знать
- Профессия «PHP-программист» от hexlet.io
- Доступ к переменным класса
- Что нужно знать и уметь PHP-программисту
- Операторы «кораблей»
- Приоритет операций
- Практические курсы по программированию «Hexlet»
- Первый сайт на PHP
- Изучение php с нуля | Уроки php для начинающих
- Добавление записи
- Профессиональные онлайн-курсы PHP от htmlacademy
- Пару слов о востребованности PHP
- Как изучить PHP с нуля
- Некоторые основные понятия
- Как создать класс в PHP?
- Портал «otus.ru»
- Вывод данных на экран с помощью языка PHP для чайников
- Пример $x кода
- Пример $x кода
Зачем использовать ООП?
Процедурный и объектно-ориентированный — это два разных способа сделать одно и то же. Нельзя сказать, что один из них лучше другого — каждый пишет, как ему нравится, так что вы даже можете легко комбинировать эти два подхода в одном скрипте.
Однако, вот некоторые преимущества ООП для разработчиков:
- Легче отражать реальные ситуации: как я отметил выше, объекты отражают реальные сущности — люди, товары, карточки, статьи в блогах и др. Это во многом упрощает задачу, когда вы только начинаете проектировать свое приложение, так как назначение каждого объекта, как и цель отношений между объектами, будет ясно и понятно.
- Легче писать модульные программы: ООП предполагает написание модулей. Разделяя код на модули, вам будет легче им управлять, дебажить и расширять его.
- Легче писать код, который будет использоваться много раз: написание кода, который можно будет использовать не один раз, сэкономит время при написании приложения, и со временем вы даже можете создать целую библиотеку такого рода модулей, которые вы сможете использовать во многих приложениях. С помощью ООП становится сравнительно легче писать такой код, так как структуры данных и функции инкапсулируются в единственный объект, который можно использовать любое количество раз.
Функция-шаблонизатор
Шаблонизатор — это функция, которая подключает файл шаблона, передаёт ему данные и возвращает сгенерированный HTML.
Именно шаблонизатор является тем клеем, что скрепляет воедино отдельные шаблоны в итоговую страницу. Работает он следующим образом: PHP-сценарий страницы выполяет все действия для подготовки необходимой информации, к примеру, запрашивает записи из базы данных. Эти записи в виде массива отправляются шаблонизатору вместе с именем шаблона страницы.
Шаблонизатор подключает указанный файл шаблона и передаёт туда всю информацию. Но, вместо вывода на экран содержимого этого шаблона, он захватывает получившийся HTML-код и возвращает его.
Затем сценарий вызывает шалбонизатор ещё раз, но теперь с его помощью подключает общий лейаут, куда отправляется общая информация, а также содержимое страницы, полученное из предыдущего шага. Весь результат работы выводится на экран.
Пример использования
Посмотрим на примере, как это всё работает. Начнём с того, что определим три шаблона: лейаут, шаблон страницы и какой нибудь блок.
Напоминаю, что в лейаут выносим общий HTML-код.
Теперь очередь за шаблоном страницы:
Здесь обрати внимание, что шаблон страницы помимо интерации по массиву, для каждого его элемента вызывает функцию-шаблонизатор. Шаблонизатор получает контент из шаблона блока и показывает его внутри списка
А вот и шаблон блока для показа одной записи:
[inc/item.php]
Так выглядели три шаблона. Все они примут участие в формировании итоговой страницы. Соберёт эти шаблоны и выведет страницу на экран наш сценарий — index.php:
5 последних уроков рубрики «PHP»
Когда речь идёт о безопасности веб-сайта, то фраза «фильтруйте всё, экранируйте всё» всегда будет актуальна. Сегодня поговорим о фильтрации данных.
Обеспечение безопасности веб-сайта — это не только защита от SQL инъекций, но и протекция от межсайтового скриптинга (XSS), межсайтовой подделки запросов (CSRF) и от других видов атак
В частности, вам нужно очень осторожно подходить к формированию HTML, CSS и JavaScript кода.
Expressive 2 поддерживает возможность подключения других ZF компонент по специальной схеме. Не всем нравится данное решение
В этой статье мы расскажем как улучшили процесс подключение нескольких модулей.
Предположим, что вам необходимо отправить какую-то информацию в Google Analytics из серверного скрипта. Как это сделать. Ответ в этой заметке.
Подборка PHP песочниц
Подборка из нескольких видов PHP песочниц. На некоторых вы в режиме online сможете потестить свой код, но есть так же решения, которые можно внедрить на свой сайт.
Дробные курсы по PHP от GeekBrains
Длительность: 1 месяц + 1 месяц + 2 урока.
Уровень: с нуля.
Формат: онлайн-лекции + методические и практические задания.
Стоимость:
- уровень 1 – 16 500 рублей;
- уровень 2 – 16 500 рублей;
- веб-разработка – 550 рублей;
- 1 уровень. Основы веб разработки.
- 2 уровень. Профессиональная веб-разработка.
- Веб-разработка. PHP в проектах любого масштаба.
Подробнее: 1 уровень. 2 уровень. веб-разработка.
Преподаватели: разработчики @Mair.ru с многолетним опытом.
Инструменты: PHP, MySQL, PHPUnit, MVC, ООП, Yii2, Rest API.
Итоги: теоретические и практические навыки, которых хватит для разработки достойного портфолио.
Ссылка на курс: уровень 1, уровень 2, web-разработка.
Впечатления: сразу 3 грамотных курса для разработчиков с нуля. Здесь довольно обширная дается программа, т.к. курса 3, его ведут профессионалы. И дается много практики, а значит и работ для портфолио.
Информация о процессоре
Для этого необходимо использовать метод 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(), который использует ресурсы системы.
Однако следует отметить, что выведенное время может быть не точным, т.к. в данный момент времени ресурсы процессора используются и другими программами, что в результате может дать небольшую погрешность.
Как работает HTTP, и зачем нам это знать
Программировать на PHP можно и без знания протокола HTTP, но есть ряд ситуаций, когда для решения задач нужно знать, как именно работает веб-сервер. Ведь PHP — это, в первую очередь, серверный язык программирования.
Протокол HTTP очень прост и состоит, по сути, из двух частей:
- Заголовков запроса/ответа;
- Тела запроса/ответа.
Сначала идёт список заголовков, затем пустая строка, а затем (если есть) тело запроса/ответа.
И клиент, и сервер могут посылать друг другу заголовки и тело ответа, но в случае с клиентом доступные заголовки будут одни, а с сервером — другие. Рассмотрим пошагово, как будет выглядеть работа по протоколу HTTP в случае, когда пользователь хочет загрузить главную страницу социальной сети «Вконтакте».
1. Браузер пользователя устанавливает соединение с сервером vk.com и отправляет следующий запрос:
GET / HTTP/1.1 Host: vk.com
2. Сервер принимает запрос и отправляет ответ:
3. Браузер принимает ответ и показывает готовую страницу
Больше всего нам интересен самый первый шаг, где браузер инициирует запрос к серверу vk.com
Рассмотрим подробнее, что там происходит. Первая строка запроса определяет несколько важных параметров, а именно:
- Метод, которым будет запрошен контент;
- Адрес страницы;
- Версию протокола.
— это метод (глагол), который мы применяем для доступа к указанной странице. является самым часто используемым методом, потому что он говорит серверу о том, что клиент всего лишь хочет прочитать указанный документ. Но помимо есть и другие методы, один из них мы рассмотрим уже в следующем разделе.
После метода идет указание на адрес страницы — URI (универсальный идентификатор ресурса). В нашем случае мы запрашиваем главную страницу сайта, поэтому используется просто слэш — .
Последним в этой строке идет версия протокола и почти всегда это будет
После строки с указанием основных параметров всегда следует перечисление заголовков, которые передают серверу дополнительную полезную информацию: название и версию браузера, язык, кодировку, параметры кэширования и так далее.
Среди всех этих заголовков, которые передаются при каждом запросе, есть один обязательный и самый важный — это заголовок . Он определяет адрес домена, который запрашивает браузер клиента.
Сервер, получив запрос, ищет у себя сайт с доменом из заголовка , а также указанную страницу.
Если запрошенный сайт и страница найдены, клиенту отправляется ответ:
Такой ответ означает, что всё хорошо, документ найден и будет отправлен клиенту. Если говорить более обобщённо, стартовая строка ответа имеет следующую структуру:
Больше всего здесь интересен именно код состояния, он же код ответа сервера.
В этом примере код ответа — 200, что означает: сервер работает, документ найден и будет передан клиенту. Но не всегда всё идет гладко.
Например, запрошенный документ может отсутствовать или сервер будет перегружен, в таком случае клиент не получит контент, а код ответа будет отличным от 200.
- 404 — если сервер доступен, но запрошённый документ не найден;
- 503 — если сервер не может обрабатывать запросы по техническим причинам.
Спецификация HTTP 1.1 определяет 40 различных кодов HTTP.
После стартовой строки следуют заголовки, а затем тело ответа.
Профессия «PHP-программист» от hexlet.io
Длительность: 4-7 месяцев (выбираете сами).
Уровень: с нуля.
Формат: тренажер + менторинг + консультация куратора.
Стоимость:
- профессиональный доступ– $39 в месяц или $390 в год;
- премиум доступ — $149 в месяц или $1350 в год.
Подробнее об уровнях доступа: посмотреть.
Преподаватель:
Кирилл Мокевнин — сооснователь и технический директор образовательного проекта Hexlet;
Инструменты: Bash, Git, CodeSniffer, Linux, Heroku, Composer, GitHub, PostgreSQL, Slim, Laravel, PHPUnit, Lumen, SQL, регулярные выражения.
Итоги: 4 проекта в портфолио + сертификат + стажировка в компаниях-партнерах + рассылка резюме по HR-отделам.
Ссылка на курс:
Впечатления: этот курс подойдет тем, у кого туго со временем. Учиться можно в свободном режиме. Можно взять доступ к курсам на 3 месяца и тем самым себе помочь не растягивать обучение, а можно взять доступ на год и учиться время от времени. На курсе много практики, а после прохождения обучающий центр направляет на собеседования и делает рассылку по HR-компанию, что дает шанс получить компанию в этой области.
Получить скидку →
Доступ к переменным класса
Для получения доступа к переменной того или иного объекта используется оператор ->:
$object->propertyName
Давайте попробуем. Напишем скрипт, который объявляет класс Member и переменную класса, создает объект этого класса, а затем задает значение переменной класса и выводит его на экран:
<?php class Member { public $username = ""; } $member = new Member(); $member->username = "Fred"; echo $member->username; // Выведет "Fred" ?>
Запустите данный код, он выведет на экран строку “Fred”, значение переменной класса $member->username. Как видите, вы оперируете переменной объекта так же, как обычной переменной — вы можете задать ей значение и прочитать его.
Что нужно знать и уметь PHP-программисту
Взято с сайта delai-vibor.com
Понимая общую картину, стоит взглянуть более детально на список навыков, которыми вполне реально овладеть за 6 месяцев:
Рассматривая, как стать PHP-программистом с нуля, рекомендуется начать с получения базовых знаний об HTML и CSS, поскольку язык PHP в основном применяется для создания веб-страниц на HTML с поддержкой стилей CSS.
Изучение непосредственно самого языка PHP. Не стоит, наверное, объяснять, что PHP-программист должен в совершенстве знать этот язык веб-разработки. Что касается версии, то работодатели требуют знание PHP 5.0 и выше (вряд ли вы найдете вакансию, где понадобится работать с версией, которая ниже 5-й, хотя, конечно, в некоторых системах до сих пор встречается даже так называемый Legacy code – устаревший и неподдерживаемый код).
Затем необходимо обязательно изучить реализацию объективно-ориентированного программирования (ООП), т. к. большая часть CMS и фреймворков пишется с применением этой парадигмы
Полезно будет посмотреть также на шаблоны проектирования, обратив особое внимание на MVC (Model-View-Controller) – конструкционный шаблон, описывающий способ построения структуры разрабатываемого приложения.
Зная один PHP, хорошую работу найти крайне сложно. Практически в каждой вакансии требуется владение навыками работы с базами данных
Для общего ознакомления полезно рассмотреть различные СУБД, но наиболее востребованной выступает MySQL и PostgresQL, поэтому для начала сосредотачиваются на их изучении.
Освоение JavaScript, на первый взгляд, может показаться ненужным для PHP-developer, но рынок труда так не считает. Изучив синтаксис JavaScript, рекомендуется переходить к освоению фреймворков jQuery или, например, React, Vue, Angular, Ember, Backbone, Svelte.
Поскольку хостинговые сервера, созданные с использованием PHP, обычно работают на Unix или Linux, то нужно познакомиться с этими операционными системами поближе. В идеале установить на свой рабочий ПК Linux, чтобы сделать работу с ОС привычным делом.
Из веб-серверов внимание нужно обратить на Apache по причине его широкого распространения, но сильно углубляться в тонкости его настройки не нужно, т. к. в плане производительности выигрывает пара Nginx + PHP-fpm.
Если планируется изучить профессию PHP-разработчика, чтобы комфортно работать дома на фрилансе, то в процессе подготовки нужно выделить время на углубленное освоение Photoshop и HTML+CSS. Эти инструменты понадобятся для самостоятельной кроссбраузерной верстки, поскольку в большинстве заказов необходимо исправлять и дорабатывать функционал популярных движков (CMS): WordPress, Bitrix, ModX, Joomla, DLE, Drupal и пр.
Подписывайтесь на наши новости
Одно письмо в неделю с самыми актуальными статьями + обзор digital-профессий!
*Нажимая «Подписаться» вы даете согласие на обработку персональных данных.
Операторы «кораблей»
Итак, все знают об операторе «космический корабль» с момента выхода PHP 7. Но менее известно, что одновременно с этим релизом был введён целый флот космических кораблей для проведения крупномасштабных операций.
Крошечный космический корабль
Вы можете предоставить эскорт оператору космического корабля, используя крошечный оператор космического корабля. Этот оператор не делает сравнение: он просто добавляет к в таком изысканном стиле.
X-истребители
Если вы хотите добавить огневую мощь к предыдущему флоту, вы можете вызвать истребителей типа X к источнику PHP: . Следующий код вычитает 3 у (в оригинальной статье написано, что оператор прибавит 3 (), но это не так, см. вывод примера ниже — прим. пер.)
Линейный корабль
Оператор линейного корабля обеспечивает поддержку предыдущих операторов. Это один из операторов, работающий только с массивами, точно так же, как . Его следует использовать только самым продвинутым гуру PHP на этой стороне галактики. Не стоит недооценивать его силу.
Разве не лучший способ написать так?
Звезда Смерти
Многие из вас бы спросили, а был ли встроен в PHP оператор «звезда смерти», и ответ таков: в данный момент неизвестно. Есть планы на это, но никто никогда не видел реального экземпляра. Мне бы очень хотелось видеть оператор в три строки, так как PHP будет первым, кто будем иметь подобное (и, когда это произойдёт, надеюсь, не с моего счёта спишут стоимость этого оператора).
Приоритет операций
С наивысшим приоритетом:
- ( ) – вызов функции
- – индексирование (обращение к элементу массива)
Одноместные операции
- ! – логическое отрицание
- + – одноместный плюс
- — – одноместный минус
- ++ – инкремент префиксная запись
- –– – декремент префиксная запись
Мультипликативные
- * – умножение
- / – деление
- % — деление по модулю
Аддитивные
- + – двуместный плюс
- — – двуместный минус
Отношения
- < – меньше
- > – больше
- <= — меньше либо равно
- >= — больше либо равно
Эквивалентность
- == – проверка равенства
- != – проверка неравенства
- === — тождественно равно
- !=== — не равно тождественно
Логические
- && или and – логическое И;
- || или or – логическое ИЛИ;
Присвоения
- =
- *=
- /=
- %=
- +=
- -=
Постфиксный инкремент и декремент
Практические курсы по программированию «Hexlet»
Сайт: https://ru.hexlet.ioСтоимость: по запросу
«PHP-программист»
PHP популярен и проще для новичков, чем большинство других серверных языков.
В программе:
- Умение строить веб-приложения на основе микрофреймворков
- Разработка веб-сайтов и приложений
- Веб-фреймворки Slim, Lumen и Laravel
- Работа с командной строкой
- Автоматизированное тестирование
- ООП, шаблоны проектирования
- Базы данных, понимание ORM (Object-Relational Mapping)
- Функциональное программирование, чистый код
- Основы алгоритмов и структур данных
Учебный план, первые 10 пунктов:
- PHP: основы
- Жизнь программиста
- Введение в веб-разработку
- Основы HTML, CSS и веб-дизайна
- Основы командной строки
- Системы контроля версий
- PHP: настройка окружения
- Ключевые аспекты веб-разработки на PHP
- PHP: массивы
- Проект № 1: Игры разума
После завершения курса слушатель получает официальный сертификат.
Первый сайт на PHP
Последнее обновление: 1.11.2015
Сейчас мы создадим небольшой сайтик, который призван дать начальное понимание работы с PHP.
Перейдем к ранее созданному каталогу C:\localhost, который будет хранить все документы сайта. Создадим текстовый файл
и назовем его index.html. Откроем его в текстовом редакторе и добавим в него следующий код:
<!DOCTYPE html> <html> <head> <title>Первый сайт на PHP</title> <meta charset="utf-8"> </head> <body> <h2>Введи свои данные:</h2> <form action="display.php" method="POST"> <p>Введите имя: <input type="text" name="firstname" /></p> <p>Введите фамилию: <input type="text" name="lastname" /></p> <input type="submit" value="Отправить"> </form> </body> </html>
Код html содержит форму с двумя текстовыми полями. При нажатии на кнопку данные этой формы отсылаются скрипту display.php,
так как он указан в атрибуте .
Теперь создадим этот скрипт, который будет обрабатывать данные. Добавим в папку C:\localhost новый текстовый файл. Переименуем его в
display.php. По умолчанию файлы программ на php имеют расширение .php. Итак, добавим в файл display.php следующий код:
<!DOCTYPE html> <html> <head> <title>Первый сайт на PHP</title> <meta charset="utf-8"> </head> <body> <?php $name = $_POST; $surname = $_POST; echo "Ваше имя: <b>".$name . " " . $surname . "</b>"; ?> </body> </html>
Здесь уже в разметке html идут вкрапления кода PHP. Для добавления выражений PHP на страницу используются теги , между
которыми идут инструкции на языке PHP. В коде php мы получаем данные формы и выводим их на страницу.
Каждое отдельное выражение PHP должно завершаться точкой с запятой. В данном случае у нас три выражения. Два из них получают переданные данные формы,
например, .
— это переменная, которая будет хранить некоторое значение. Все переменные в PHP предваряются знаком $. И так как форма на странице index.html
использует для отправки метод POST, то с помощью выражения мы можем получить значение, которое было введено в текстовое поле
с атрибутом . И это значение попадает в переменную $name.
С помощью оператора echo можно вывести на страницу любое значение или текст, которые идут после оператора. В данном случае ()
с помощью знака точки текст в кавычках соединяется со значениями переменных $name и $surname и выводится на страницу.
Теперь обратимся к форме ввода, перейдя по адресу http://localhost:8080:
Введем какие-нибудь данные и нажмем на кнопку отправить:
Итак, у нас сработал скрипт display.php, который получил и вывел отправленные данные на страницу.
НазадВперед
Изучение php с нуля | Уроки php для начинающих
Урок 10. Циклическая конструкция do…while в php
Небольшой урок по циклу do…while в языке php. Автор указывает на различия по сравнению с циклом while, объясняет особенности конструкции на примере.
Урок 11. Досрочное прерывание итераций с помощью команд break и continue
В данном уроке изложены материалы о двух командах break и continue, с помощью которых можно досрочно прерывать итерации в php. Детально рассматриваются способы записи и применения обеих команд, наводятся примеры использования break и continue.
Урок 12. Подключение внешнего кода в php
В уроке описываются способы подключения внешнего кода в php, приводятся примеры для чего и каким образом осуществляются такие включения.
Урок 13. Команды включения файлов: require, require_ once, include, include_once
В этом уроке подробно рассматриваются 4 команды включения файлов в сценарии php: require, require_ once, include и include_once. Автор наводит примеры подключения файлов с помощью каждой команды, указывает на нюансы их использования и различия.
Урок 14. Массивы в php
В этом уроке мы познакомимся с особенностями использования массивов в языке программирования php, узнаем, что такое массив, как получить доступ к элементам массива, наводится пример простого массива.
Урок 15. Создание массивов в php
В уроке рассматриваются основные способы создания (инициализации) массивов в php, что такое элементы массива, каким образом осуществляется индексация массива, учебные материалы построены на реальных примерах.
Урок 16. Индексные и ассоциативные массивы
В этом кратком уроке речь пойдет об индексных и ассоциативных массивах: определения, различия между ними, создание индексных и ассоциативных массивов, практические примеры использования.
Урок 17. Одномерные и многомерные массивы
В семнадцатом уроке рассматриваются одномерные и многомерные массивы: что такое многомерный массив, пример многомерного массива пользователей сайта, синтаксис многомерного массива, доступ к элементам многомерного массива, уровни вложенности.
Урок 18. Способы перебора элементов массивов в php
В этом уроке Вы узнаете о способах перебора элементов массивов с помощью циклических конструкций for, while и foreach,а также их комбинирование, увидите реальные примеры перебора элементов массивов.
Урок 19. Функции в языке php
В этом уроке представлена общая информация о функциях в языке php: определение понятия функции в php, роль функций, виды и основные свойства.
2
Добавление записи
Вернёмся к нашему проекту — дневнику наблюдений за погодой. Начнём практическую работу с заполнения таблиц данными. Для начала добавим хотя бы один город в таблицу cities.
Выражение используется для добавления новых записей в таблицу базы данных.
Составим корректный SQL-запрос на вставку записи с именем города, а затем выполним его путём передачи этого запроса в функцию , чтобы добавить новые данные в таблицу.
Обратите внимание, что первым параметром для функциии передаётся ресурс подключения, полученный от функции , вторым параметром следует строка с SQL-запросом.
При запросах на изменение данных (не SELECT) результатом выполнения будет логическое значение — true или false. будет означать, что запрос выполнить не удалось
Для получения строки с описанием ошибки существует функция .
Функция insert id: как получить идентификатор добавленной записи
Следующим шагом будет добавление погодной записи для нового города.
Погодные записи хранит таблица weather_log, но, чтобы сослаться на город, необходимо знать идентификатор записи из таблицы cities.
Здесь пригодится функция .
Она принимает единственный аргумент — ресурс соединения, а возвращает идентификатор последней добавленной записи.
Теперь у нас есть всё необходимое, чтобы добавить погодную запись.
Вот как будет выглядеть комплексный пример с подключением к MySQL и добавлением двух новых записей:
Профессиональные онлайн-курсы PHP от htmlacademy
Длительность: 3 месяца + 3 месяца.
Уровень: с нуля + продвинутый.
Формат: тренажер + онлайн-лекции + консультация куратора.
Стоимость:
- «РНР. Профессиональная веб разработка» – 15 600 рублей; в рассрочку — 2 600 рублей;
- «PHP и Yii. Архитектура сложных веб-сервисов» — 17 900 рублей; в рассрочку — 5 960 рублей.
- «РНР. Профессиональная веб разработка»:
- знакомство;
- язык PHP;
- шаблонизация;
- что такое БД;
- MySQL и PHP;
- формы и протокол HTTP;
- идентификация пользователя на сайте;
- дополнительная практика MySQL;
- библиотеки;
- защита проекта.
- «PHP и Yii. Архитектура сложных веб-сервисов»:
- ООП;
- правильная архитектура;
- продвинутые возможности PHP;
- знакомство с фреймворком;
- ORM;
- компоненты фреймворка;
- внешние сервисы и API;
- продвинутые техники.
Полная программа курсов: «РНР. Профессиональная веб разработка» и «PHP и Yii. Архитектура сложных веб-сервисов»
Инструменты: Git, PHP, MySQL, SQL, HTTP, Composer, ООП, MVC, YII2, ORM, API.
Итоги: портфолио + сертификат.
Ссылка на курс: «РНР. Профессиональная веб разработка» и «PHP и Yii. Архитектура сложных веб-сервисов»
Впечатления. Всеобъемлющий курс разделен на 2 части. В этом курсе есть особенность — вы берете в работу настоящие проекты у компаний-партнеров. А значит здесь придется хорошенько постараться, чтобы выдать высокие показатели. А это значит, что обучение может быть более, чем эффективным. Все зависит только от вас. Кураторы курса готовы поддерживать и помогать в вашей работе.
Пару слов о востребованности PHP
Незнающие люди говорят, что PHP не предназначен для реализации крупных проектов. Это заблуждение. С помощью PHP созданы многие популярные сервисы:
— социальные сети («ВКонтакте», Facebook);
— системы управления контентом — CMS (WordPress, Drupal, «1С-Битрикс»);
— различные сервисы Google.
То есть даже крупнейшие компании мира, тот же Google, используют PHP, что говорит о его высокой эффективности. А в Google хорошо разбираются в информационных технологиях.
Одно из главных преимуществ программирования на PHP заключатся в низком пороге входа. То есть уже почти через месяц обучения вы сможете создавать на нём небольшие веб-сайты. Спустя время, вам будет по силам участвовать в разработке высоконагруженных проектов.
По прошлогодним данным HeadHunter PHP находился в топ-3 по количеству поисков резюме, что говорит о его востребованности не только в Google, но и во многих других компаниях, включая отечественные. И ситуация вряд ли кардинально поменяется в ближайшие годы.
Как изучить PHP с нуля
Раз ты попал на эту страницу, то уже точно хочешь освоить php с нуля. Первой проблемой, с которой сталкивается каждый — грамотное начало. Любой программист среднего уровня не смотрит курсов, да и в учебники заглядывает очень редко, обычно он в гугле вбивает нужную тему, читает практику других программистов, советы и разные подводные камни. Подводные камни — это очень мелкие детали, о которых даже не думаешь перед тем, как начнёшь писать код, но под конец они всплывают, бывает через жалобы посетителей сайта. Частым примером может послужить «эффект наведения мыши на меню», ведь у touch-pad мобильных устройств (которые надо тыкать пальцем или стилусом) нет курсора. После этого приходится переписывать код, если вовремя советы других программистов не почитать. Как альтернативой может выступать официальная документания php.net, в которой есть множество рекомендаций.
Писать код тяжело, но намного тяжелее сделать первые шаги в освоении этих знаний. Начать изучения я посоветовал бы с установки необходимых программ, полный перечень я указал на моей странице: начало обучения php. Сразу возникнет вопрос, а что такое IDE, так вот, IDE — это программа, в которой мы пишем код. Лично мне очень нравится Adobe Dreamweaver, но моим друзьям больше симпатизируют Phpstorm и Eclipse. Выбирайте ту программу, которая Вам больше нравится. После установки веб-сервера Denwer (или как альтернатива — Open Server), проверьте, что всё установилось правильно. Для этого:
Запустите веб-сервер
Откройте браузер, желательно FireFox или Chrome. В адресной строке, где обычно пишут сайт, напишите localhost. Если вы увидели приветствие от сервера, значит всё работает
Для денвера создайте папку с сайтом по адресу: С:\webserver\home\mysite.ru\www\, учтите, что c:\webserver — это путь установки денвера. В папке www создайте файл index.php , и в нём пропишите следующий код: <?php echo ‘Hello World!’; ?>. Для Open Server этот же файл необходимо прописать по другому пути: C:\OpenServer\domains\mysite.ru\
Для OpenServer зайдите в настройку, домены и пропишите домен mysite.ru и путь к папке — созданный вами
Теперь самое важное, остановите веб-сервер и снова запустите. Можно воспользоваться кнопкой restart.
Откройте браузер ещё раз, теперь в адресной строке пропишите: http://mysite.ru , если у вас на экране вывелся текст «Hello World!» без сторонних команд и символов, то я Вас поздравляю, Вы настроили локальную среду разработки
Теперь осталось за малым, выучить PHP 🙂
Некоторые основные понятия
Перед тем, как начать писать скрипты, необходимо хорошо разобраться с такими понятиями, как класс, объект, переменная класса и метод.
Классы
Класс — это каркас для объекта. Это кусок кода, который определяет:
- Типы данных, которые будут содержать созданные объекты класса
- Функции, которые будут содержать эти объекты.
Когда вы создаете приложение на ООП, вы обычно будете создавать несколько классов, которые будут представлять различные типы сущностей вашего приложения. Например, для создания форума вы можете создать классы Forum, Topic, Post и Member.
Объекты
Объект — это переменная специального типа, которая создается через класс. Он содержит действительные данные и функции для манипулирования ими. Вы можете создавать сколько угодно объектов от одного единственного класса. Каждая функция объекта не зависит от другого объекта, даже если они созданы от одного и того же класса.
Для сравнения с реальными сущностями:
- Класс — это каркас для автомобиля: он определяет, как автомобиль будет выглядеть и действовать, но это все же абстрактная сущность
- Объект — это настоящий автомобиль, созданный из каркаса: у него есть настоящие свойства (например, скорость) и поведение (например, ускорение или торможение).
На заметку: Объект часто называют сущностью класса, а процесс создания объекта класса — реализацией.
Переменные класса
Значения данных, которые хранятся в том или ином объекте, записываются в специальные переменные, называемые переменными класса. Переменные класса тесно связаны с его объектом. Несмотря на то что все объекты класса имеют одни и те же переменные, их значения могут отличаться.
Методы
Функции, определяемые в классе и применяемые для объектов этого класса, называются методами. Они не во многом отличаются от обычных функций — вы можете передавать им значения, они могут содержать локальные переменные и возвращать значения. Однако, методы чаще работают с переменными объекта. К примеру, метод login() для авторизации пользователей в вашем форуме может устанавливать значение переменной класса loggedIn в true.
Как создать класс в PHP?
Теперь, когда вы уже знаете, что такое классы, методы, переменные класса и объекты, пришло время создать пару классов и объектов в коде PHP.
Для начала посмотрим, как собственно нужно создавать класс. В принципе, скрипт по созданию класса выглядит так:
class ClassName { // (определение класса) }
К примеру, если вы создаете класс Member для вашего форума, вы напишите так:
class Member { // (определение класса) }
Это достаточно просто. Естественно, класс этот ничего не сделает, пока вы не добавите в него переменные и методы. Тем не менее, приведенный выше код создает валидный класс на PHP, который можно использовать.
Правило хорошего тона: каждый класс помещайте в отдельный файл с названием, совпадающим с именем класса. Например, поместите класс Member в файл Member.php и храните его в папке, допустим, classes.
Портал «otus.ru»
Сайт: https://otus.ruСтоимость: 50 000 р.
«Backend-разработчик на PHP»
Современные инструменты и лучшие практики для глубокого понимания процесса разработки на PHP.
В программу курса входят:
-
- Глубокое знакомство с библиотеками PHP и особенностями языка
- Навыки проектирования приложений, работы с базами и файлами, веб-фронтендом
- Привычка к хорошему и чистому коду
- Владение тактиками по созданию высоконагруженных систем
Продолжительность курса 5 месяцев, четыре из которых — обучение, а на пятом учащиеся разделятся на команды и будут реализовывать микросервис, используя гибкие методологии разработки.
Программа обучения:
- Модуль 1. Общие знания
- Модуль 2. База данных
- Модуль 3. Практики разработки
- Модуль 4. Архитектуры и HighLoad-системы
- Модуль 5. Проектный модуль
По окончании обучения слушатель получает сертификат.
Вывод данных на экран с помощью языка PHP для чайников
- Вывод данных в окно (клиентскую область веб-браузера) с помощью PHP можно выполнить посредством оператора echo. Этот оператор позволяет вывести данные различных типов: числа, символьные строки и т.д.
- Синтаксис оператора вывода:
echo элемент1, элемент2, элемент3, ..., элементN
- Строковые данные заключаются в двойные или одинарные кавычки. В двойных кавычках код интерпретируется PHP. Все, что заключено в одинарные кавычки выводится без какой бы ни было интерпретации. Пример:
< ?php $x="PHP"; //присвоение значения переменной echo "Привет","всем"; echo " "; echo "
Пример $x кода
«; echo ‘
Пример $x кода
‘ ?>
- Для вывода более подробной информации о переменной, которая может понадобиться при отладке программы, служит функция var_dump(). Ее синтаксис:
var_dump(cписок переменных);
- В списке переменных указывается одно или несколько имен переменных. Эта функция ничего не возвращает. Пример:
$x=12.56; var_dump($x);
- Менее информативной, чем var_dump(), функцией вывода сведений о переменных является:
print_r(список_переменных);
- Для переменных типа «массив» эта функция выводит список вида индекс => элемент.