SEO продвижение сайтов

Универсальный обход по массиву

Предлагаю вашему вниманию 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

https://getcomposer.org/

Для установки:

  • Скачать 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.

Основные части современного сайта:

Интерфейсы и трейты в 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

Объектно-ориентированное программирование в PHP

Классы содержат в себе члены класса, которые представляют собой свойства и методы. Свойства класса - это переменные, а методы класса - это функции, которые взаимодействуют со свойствами.

Объявляются свойства (переменные) с помощью служебного слова var и имени переменной $per , а методы (функции) пишутся как простые функции.

Обращение к классу происходит через объявление объекта с помощью служебного слова new и имя класса.

ООП в PHP

Основная конструкция и модификаторы в ООП 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);
}

Константы в PHP

Константы в 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-код, который выполняется до включения.

Web-технологии

Событие в JavaScript

Событие в JavaScript - это определённое действие, которые вызвано либо пользователем, либо браузером.

Например:

События мыши:

  • click – происходит, когда кликнули на элемент левой кнопкой мыши (на устройствах с сенсорными экранами оно происходит при касании).
  • contextmenu – происходит, когда кликнули на элемент правой кнопкой мыши.
  • mouseover / mouseout – когда мышь наводится на / покидает элемент.
  • mousedown / mouseup – когда нажали / отжали кнопку мыши на элементе.
  • mousemove – при движении мыши.

События на элементах управления:

  • submit – пользователь отправил форму
  • focus – пользователь фокусируется на элементе, например нажимает на <input type="text" />.
Подробнее...

Универсальный обход по массиву

Предлагаю вашему вниманию PHP-код - универсальный обходчик любого массива с любым представлением. Используем две функции: 1) функция с циклом (метод ArrFor() в классе) и 2) функция (как аргумент) с оформлением результатов обхода по массиву в цикле.

Подробнее...

JavaScript - основы (ES6)

ECMAScript 6 (или ES6) - это новая версия JavaScript 2015г, в которую добавлен новый функционал, которая на сегодня поддерживается всеми современными браузерами.

Переменные и комментарии

JavaScript - не строго типизированный язык. Переменные обозначаются так:

	let name='Геннадий'//Строка
	console.log(name)  //Геннадий - отображается в консоли

	var age=40      //Число(без кавычек) VAR (глобальная) - устарело, не использовать!
	console.log(age)//40 - отображается в консоли

	const prof="Программист"//Это константа
	console.log(prof)//Программист - отображается в консоли

	// - это однострочный комментарий

	/*
		тут 
		многострочные 
		комментарии
	*/

Подробнее...
Интересные статьи

Диалектические противоречия или чего хотят современные женщины

Диалектические противоречия или чего хотят современные женщины

Современная женщина, независимо от доходов и статуса, выбирает мужчину для отношений, который должен обладать определенными чертами характера. Именно наличие этих естественных черт характера у мужчины определяют его как достойного для создания пары.

Многие женщины, живущие в современном мире, традиционно имеют как минимум два взаимоисключающих убеждения в отношении взаимодействия с мужчинами для создания такого союза.

Подробнее...

Почему мужчинам опасно регистрировать брак в России

Почему мужчинам опасно регистрировать брак в России

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

Но при этом категорически настаиваю, что официально регистрировать брак в нашей стране для мужчин катастрофически опасно и вот почему...

Подробнее...

День Победы со слезами на глазах...

День Победы со слезами на глазах...

Дорогие друзья, вот и прошёл пожалуй самый светлый праздник для нашей страны, для нашего народа - ДЕНЬ ПОБЕДЫ - 9 мая.

Но, как именно прошёл праздник 75-летия ПОБЕДЫ в этом году, я хочу напомнить сегодня, спустя 4 дня от празднования исторической даты.

У меня такое ощущение, как будто никто не заметил, что ПОЛИЦАИ по всей стране в этот день задерживали, арестовывали и штрафовали именно за память о Победе, за возложение цветов к памятникам нашим павшим героям.

Подробнее...

Оставить заявку

Закрыть
Заполните фрму и отправьте нам заяку
Заполните все обязательные поля*
captcha
Перезагрузить