PHP программирование - примеры
Универсальный обход по массиву
Предлагаю вашему вниманию PHP-код - универсальный обходчик любого массива с любым представлением. Используем две функции: 1) функция с циклом (метод ArrFor() в классе) и 2) функция (как аргумент) с оформлением результатов обхода по массиву в цикле.
Подробнее... Добавить комментарий
Пример рекурсивной функции в PHP
Рекурсия - это вызов функции внутри самой себя. Чтобы избавиться от бесполезного и бесконечного вызова функции самой себя, необходимо прописать условие при котором эта функция останавливалась - переставала себя вызывать.
function recurs($n) { if ($n>=1) { echo($n!=1)?"$n + ":"$n = "; return $n+recurs($n-1);//здесь происходит повторный вызов функции } } echo recurs(5);//5 + 4 + 3 + 2 + 1 = 15
SQL инъекции в PHP
Конечно, SQL инъекции в PHP возможны только при отсутствии проверки данных из форм и при наличии явных ошибках программистов. Я пишу эту статью для тех, кто НЕ хочет стать жертвой таких атак на свой сайт и для тех, кто хочет писать свои безопасные приложения.
Пишем форму для отправки логина и пароля для АВТОРИЗАЦИИ:
<form action="" method="POST"> <input type="text" name="email" value="<?=$email?>"><br> <input type="text" name="pass" value="<?=$pass?>"><br> <input type="submit" name="subm" value="Авторизоваться"> </form>
PHP-код вывода массивов в HTML
Все программисты PHP (с любым уровнем подготовки), конечно знаю, как вывести массив PHP в HTML-код: ну, конечно же через цикл!
Я предлагаю это сделать при помощи функции, которая отобразит любой массив в любом виде c HTML оформлением. Данной функции мы передаём в качестве аргументов: массив и формат отображения его в виде другой функции.
Такой подход даёт универсальность данной функции отображения массива и значительно сокращает дублирование PHP кода.
Пример:
Composer — менеджер зависимостей в PHP
Для установки:
- Скачать Composer-Setup.exe - с официального сайта Composer
- Установить Composer-Setup.exe - путь указываем, там где лежит php-интерпретатор (php.exe)
- Запустить консоль - cmd
- Заходим в папку через консоль, где лежит php-интерпретатор (php.exe) - D: [ent] cd D:\OSPanel\modules\php\PHP-7.1 [ent]
- Проверяем:
Архитектура современных сайтов на PHP
Необходимо освоить установку среды для эмуляции работы сайта в среде WAMP, LAMP, LEMP. Для этого нужно установить виртуальную машину VirtualBox, а уже на неё ставить серверную платформу.
Локальный сервер Open Server имитирует полноценную работу сервера хостера, на котором находится WINDOWS или Linux, Apache или Nginx, PHP-интерпретатор и MySQL. Делаем доступ к директории сайта с основной машины.
Создаём проект на редакторе IDE (интегрированная среда разработки - англ. Integrated Development Environment), например SUBLIME.
Основные части современного сайта:
Подключение к MySQL в PHP
Примеры кода:
//Это данные для подключения к MySQL $host='localhost'; // адрес сервера $user='root'; // Login $pass=''; // Пароль $base='sasha'; // Имя базы данных<> echo '<h2>У вас PHP '.phpversion()."версия</h2>\n";
Интерфейсы и трейты в PHP
Интерфейсы в ООП PHP
Интерфейсы (interface) - это класс, в котором все методы являются абстрактными (abstract) и открытыми (public). В интерфейсе ООП PHP можно задать только имена методов и их параметры, а реализованы они обязаны быть в расширяемых ими классах.
Для реализации интерфейса мы используем ключевое слово implements. Класс может реализовать более одного интерфейса, которые разделяются запятыми. Как и классы, интерфейс может содержать константы, которые запрещено переопределять.
Трейты в ООП PHP
Трейты (trait) - это механизм обеспечения повторного использования кода в PHP с учетом одиночного наследования. Трейт отчасти реализует множественное наследование, позволяя разработчику повторно использовать наборы методов свободно, в нескольких независимых классах.
Трейт похож на класс, но создать экземпляр трейта невозможно. Он предназначен для группирования функционала, который потом используется в разных классах с помощью директивы use. Нужные для использования в классе трейты можно указать через запятую.
Код примера:
Шаблоны проектирования в PHP - паттерны
Шаблон проектирования или паттерн (англ. design pattern) - оптимальный и оригинальный подход в решении типичных, частовстречающихся задач. Эти подходы, приёмы имеют свои названия и используются почти во всех объектно-ориентированных языках программирования.
Паттерны можно классифицировать по назначению (цель, результат) и по тому, к чему обычно применяется к объектам или к классам.
- Поведенческие (behavioral)
- цепочка обязанностей (Chain of Responsibility);
- команда (Command);
- итератор (Iterator);
- посредник (Mediator);
- хранитель (Memento);
- наблюдатель (Observer);
- посетитель (Visitor);
- стратегия (Strategy);
- состояние (State);
- шаблонный метод (Template Method).
- Порождающие (creational)
- простая фабрика (Simple Factory);
- фабричный метод (Factory Method);
- абстрактная фабрика (Abstract Factory);
- строитель (Builder);
- прототип (Prototype);
- одиночка (Singleton).
- Структурные (structural)
- адаптер (Adapter);
- мост (Bridge);
- компоновщик (Composite);
- декоратор (Decorator);
- фасад (Facade);
- приспособленец (Flyweight);
- заместитель (Proxy).
PHP Singleton - Синглтон, пример паттерна
Паттерн (pattern) – это стандартизированное решение какой-либо часто встречающейся проблемы, идея правильного, красивого решения с перспективой легкого расширения функционала.
Паттерн - это некий оптимальный, оригинальный и продуманный подход к решению часто встречающихся задач, который используется во всех языках программирования. Реализации паттернов могут быть различными.
Паттерн Singleton (одиночка) - цель создать только ОДНУ (!!!) реализацию класса с целью экономии ресурса и не допустить коллизий повторных подключений. Нужно создать единственную реализацию класса и его методов и при попытках создать ещё реализации этого класса всегда возвращать результат первой ранее созданной реализации класса.
Пример php-кода:
Командная строка для Web программистов
Это ознакомительная статья про основы командной строки для web разработчиков, которые должен знать каждый web-программист и уметь использовать командную строку на практике ежедневно. С использование командной строки мы часто сталкиваемся при работе с различными фреймворками.
Базовый терминал для работы с командной строкой есть в каждой операционной системе, а также можно скачать и сторонние программы, например: GitBash.
Скачать GitBash можно тут.
Далее запускаем от имени администратора или Служебные программы Windows -> Командная строка (cmd) или GitBash или др.
NB!: Для Windows Win + R и ввести команду cmd.exe
Основные команды:
Пространства имен в PHP
Пространство имён (namespace) - предназначено для разделения кода в больших проектах для того, чтобы не допустить путаницы, одинаковых названий классов, функций и констант, обращение к которым происходит через уникальные имена пространства имен.
Так Вы сможете смело подключать сторонние библиотеки и не бояться, что там будут такие же имена, как и в вашем коде, которые могут привести к фатальным ошибкам.
Пример:
Что нового в php 7
Скорость php 7 по сравнению с php 5 увеличилась почти 3 раза, а реально в 2 раза. Такой резкий скачок произошёл в том числе и из-за кэширования, которое часто мешает, его можно отключить или в php.ini (ищем через phpinfo();) если сервер локальный или в .htaccess:
Отключаем кэширование в php 7
php_flag opcache.enable off
php_flag xcache.cacher off
Пространства имен в PHP 7 можно теперь использовать так...
Объектно-ориентированное программирование в PHP
Классы содержат в себе члены класса, которые представляют собой свойства и методы. Свойства класса - это переменные, а методы класса - это функции, которые взаимодействуют со свойствами.
Объявляются свойства (переменные) с помощью служебного слова var и имени переменной $per , а методы (функции) пишутся как простые функции.
Обращение к классу происходит через объявление объекта с помощью служебного слова new и имя класса.
ООП в PHP
Основная конструкция и модификаторы в ООП PHP
В ООП есть модификаторы доступа к свойствам (переменным) и методам функциям):
public или var (свойства, методы) - полный доступ
private (свойства, методы) - только из собственного класса
protected (свойства, методы) - только из собственного класса и класса наследника
internal - полный доступ, только из одной сборки (без include и др.) - используется редко
Все свойства (переменные) по умолчанию public (var)
Все методы (функции) по умолчанию public и static
Отправить письмо - mail() функция
function sendmail($_sSubject, $_sMessage, $_sEmail, $_sFrom, $_sReply, $_bPriority=false){
$subject = "=?utf-8?b?" . base64_encode($_sSubject) . "?=";
$headers = "From: $_sFrom\r\n";
$headers .= "Reply-To: $_sReply\r\n";
$headers .= "MIME-Version: 1.0\r\n";
if($_bPriority){
$headers .= "X-Priority: 1 (Highest)\n";
$headers .= "X-MSMail-Priority: High\n";
$headers .= "Importance: High\n";
}
$headers .= "Content-type: text/html; charset=utf-8\r\n";
return mail($_sEmail, $subject, $_sMessage, $headers);
}
Обработка данных из формы
function stripinput($_sText) {
if (ini_get('magic_quotes_gpc')) $_sText = stripslashes($_sText);
$search = array("\"", "'", "\\", '\"', "\'", "<", ">", " ");
$replace = array(""", "'", "\", """, "'", "<", ">", " ");
$_sText = str_replace($search, $replace, $_sText);
return $_sText;
}
Константы в PHP
Константы в PHP - это очень просто. Единственное, что нужно запомнить функцию define() с двум аргументами: имя константы и её значение. Имя константы, как правило пишут большими буквами (капителью) и начинается с буквы.
Константы НЕЛЬЗЯ переназначать!
Пример константы в PHP:
<?php
define('NAME_KON', 'Значение константы');
echo NAME_KON; // Значение константы
?>
Работа с файла в PHP
Открываем для чтения .txt-файл
Открываем для чтения (r) файл (локальный или через интернет, можно и html), считываем и выводим в браузер циклом по-строчно.
<?php
@$f=fopen('file.txt', 'r'); // Открыть файл
if ($f)
{
while (!feof($f)) // Выводим по одной строке
{
$a="<p>".trim(fgets($f))."</p>\n";
echo $a; //Вывести одну строку
}
} else {echo "Файл не открывается!";}
?>
Выводит:
Конструкция включений в PHP
Конструкция require(адрес_файла) позволяет включать файлы в PHP сценарий до выполнения сценария PHP. Общий синтаксис require такой:
<?php
require('ch1.php');
?>
Включенный файл может содержать как простой HTML, так и PHP-код, который выполняется до включения.