Efficient MySQL Performance
Автор: Daniel Nichter
Год издания: 2021
#mysql #english
Скачать книгу
@phpshka
Автор: Daniel Nichter
Год издания: 2021
#mysql #english
Скачать книгу
@phpshka
Learning MySQL
Авторы: Vinicius M. Grippa, Sergey Kuzmichev
Год издания: 2021
#mysql #english
Скачать книгу
@phpshka
Авторы: Vinicius M. Grippa, Sergey Kuzmichev
Год издания: 2021
#mysql #english
Скачать книгу
@phpshka
Building Scalable PHP Web Applications Using the Cloud
Автор: Jonathan Bartlett
Год издания: 2019
#php
Скачать книгу
Автор: Jonathan Bartlett
Год издания: 2019
#php
Скачать книгу
PHP and MySQL Web Development (2017)
Авторы: Luke Welling, Laura Thomson
Год издания: 2017
#php #en
Скачать книгу
Авторы: Luke Welling, Laura Thomson
Год издания: 2017
#php #en
Скачать книгу
PHP жив и будет жить: почему его хоронят больше 10 лет, а он всё никак не умрёт
Шутки о том, что php умер не устаревают уже лет 10 (а то и все 20). Но как показала практика — php все ещё жив.
О том, почему всё так активно хоронят php и почему он всё ещё жив, а также какое будущее его ждёт, — рассказал Кирилл Мокевнин, CEO образовательной платформы Хекслет.
https://tproger.ru/articles/php-zhiv-i-budet-zhit-pochemu-ego-horonyat-bolwe-10-let-a-on-vsyo-nikak-ne-umryot/
#php
Шутки о том, что php умер не устаревают уже лет 10 (а то и все 20). Но как показала практика — php все ещё жив.
О том, почему всё так активно хоронят php и почему он всё ещё жив, а также какое будущее его ждёт, — рассказал Кирилл Мокевнин, CEO образовательной платформы Хекслет.
https://tproger.ru/articles/php-zhiv-i-budet-zhit-pochemu-ego-horonyat-bolwe-10-let-a-on-vsyo-nikak-ne-umryot/
#php
Работаем на PHP в функциональном стиле с помощью IterTools PHP
Бесплатная опенсорсная библиотека IterTools PHP разработана автором другой популярной библиотеки
Все методы библиотеки поддерживают работу с любыми итерируемыми сущностями (array, Generator, Iterator, Traversable), что выгодно отличает её от элементов функционального программирования, идущих в комплекте с языком (они, как правило, работают только с одним типом данных).
Её порекомендовал нам наш подписчик, который и сам активно использует её в собственных проектах и на работе — она позволяет сделать код намного лаконичней, читабельней и более поддающимся юнит-тестированию.
Подробности, справочник на русском и инструкция тут:
https://github.com/markrogoyski/itertools-php
#php #библиотека
Бесплатная опенсорсная библиотека IterTools PHP разработана автором другой популярной библиотеки
MathPHP
. IterTools вносит множество полезной функциональности в язык, реализуя удобную и гибкую работу с итерируемыми сущностями в функциональном стиле — в духе itertools из Python.Все методы библиотеки поддерживают работу с любыми итерируемыми сущностями (array, Generator, Iterator, Traversable), что выгодно отличает её от элементов функционального программирования, идущих в комплекте с языком (они, как правило, работают только с одним типом данных).
Её порекомендовал нам наш подписчик, который и сам активно использует её в собственных проектах и на работе — она позволяет сделать код намного лаконичней, читабельней и более поддающимся юнит-тестированию.
Подробности, справочник на русском и инструкция тут:
https://github.com/markrogoyski/itertools-php
#php #библиотека
🗣 Laravel курс с нуля. База. Уровень с нуля.
Laravel — это PHP-фреймворк с открытым исходным кодом, специально разработанный для создания сложных сайтов и веб-приложений. Позволяет упростить аутентификацию, маршрутизацию, сессии, кэширование, архитектуру приложения, работу с базой данных.
📌 Смотреть бесплатно
#Lavarel
@phpshka
Laravel — это PHP-фреймворк с открытым исходным кодом, специально разработанный для создания сложных сайтов и веб-приложений. Позволяет упростить аутентификацию, маршрутизацию, сессии, кэширование, архитектуру приложения, работу с базой данных.
📌 Смотреть бесплатно
#Lavarel
@phpshka
📋Использование простых алгоритмов в PHP: рекурсивный метод
▪Построение древовидной иерархии
Необходимо использовать рекурсивный метод для представления этого массива в виде древовидного меню.
Алгоритм (паттерн, если так хотите) будет примерно следующим:
0. Создаём объект дерева и выбираем все элементы в таблице.
1. Вызываем метод построения. Он инициализирует сборку массива родительских категорий. Именно этот момент является ноу-хау данного алгоритма. Он позволяет нам организовать изящную рекурсию.
2. Итеративно обходим массив, начиная с нулевого элемента. Выводим информацию о текущем элементе.
3. Увеличиваем уровень погружения. Рекурсивно вызываем метод для дочернего элемента. Если он есть в массиве родительских категорий, то идем к шагу 2, иначе — выходим в шаг-инициализатор.
4. Уменьшаем уровень погружения. Выходим из итерации.
▪Метод сборки массива категорий будет выглядеть примерно вот так:
▪Далее напишем наш рекурсивный метод в соответствии с приведенным выше алгоритмом:
▪Теперь можем вызвать построение дерева, начиная с 0 элемента и 0 уровня. Замечу, что приведённый метод может вызывать построение с любой вложенной ноды и не ограничен по глубине.
▪А вот как будет выглядеть наше дерево в итоге:
Продолжение
@phpshka
▪Построение древовидной иерархии
Необходимо использовать рекурсивный метод для представления этого массива в виде древовидного меню.
Алгоритм (паттерн, если так хотите) будет примерно следующим:
0. Создаём объект дерева и выбираем все элементы в таблице.
1. Вызываем метод построения. Он инициализирует сборку массива родительских категорий. Именно этот момент является ноу-хау данного алгоритма. Он позволяет нам организовать изящную рекурсию.
2. Итеративно обходим массив, начиная с нулевого элемента. Выводим информацию о текущем элементе.
3. Увеличиваем уровень погружения. Рекурсивно вызываем метод для дочернего элемента. Если он есть в массиве родительских категорий, то идем к шагу 2, иначе — выходим в шаг-инициализатор.
4. Уменьшаем уровень погружения. Выходим из итерации.
▪Метод сборки массива категорий будет выглядеть примерно вот так:
private function getCategoryArray() {
$query = $this->db_connect->prepare("SELECT * FROM tree_table");
$query->execute();
$result = $query->fetchAll(PDO::FETCH_OBJ);
$category_array = array();
foreach ($result as $value) {
$category_array[$value->id_parent][] = $value;
}
return $category_array;
}
▪Далее напишем наш рекурсивный метод в соответствии с приведенным выше алгоритмом:
public function buildTree($parent_id, $tree_level) {
if (isset($this->category[$parent_id])) {
foreach ($this->category[$parent_id] as $value) {
echo "
" . $value->id_tree_test . " : " . $value->title . "
";
$tree_level++;
$this->buildTree($value->id_tree_test, $tree_level);
$tree_level--;
}
}
}
▪Теперь можем вызвать построение дерева, начиная с 0 элемента и 0 уровня. Замечу, что приведённый метод может вызывать построение с любой вложенной ноды и не ограничен по глубине.
$tree = new Tree();
$tree->buildTree(0, 0);
▪А вот как будет выглядеть наше дерево в итоге:
Продолжение
@phpshka
Новейший курс по изучению языка Php 8 c 0
1. Введение в php
2. Типы данных
3. Операторы
4. Условия
5. Циклы
6. Массивы
7. Создание функций
8. Функции для работы с датой и временем
9. Математические и строковые функции
10. GET и POST запросы
#video #php
https://www.youtube.com/watch?v=EGgfX21IyoA&list=PLuH4XlBKwOhtr5wdbpOKhF_vnth-p9B6f&ab_channel=DarkProger-%D0%BA%D1%83%D1%80%D1%81%D1%8B%D0%B2%D0%B5%D0%B1%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F
1. Введение в php
2. Типы данных
3. Операторы
4. Условия
5. Циклы
6. Массивы
7. Создание функций
8. Функции для работы с датой и временем
9. Математические и строковые функции
10. GET и POST запросы
#video #php
https://www.youtube.com/watch?v=EGgfX21IyoA&list=PLuH4XlBKwOhtr5wdbpOKhF_vnth-p9B6f&ab_channel=DarkProger-%D0%BA%D1%83%D1%80%D1%81%D1%8B%D0%B2%D0%B5%D0%B1%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F