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
▪beONmax Курс PHP / MySQL
▪ИНТУИТ Язык программирования PHP
Академия АйТи PHP Основы
▪
▪itProger Создание сайта на PHP
▪Youtube Интернет магазин с нуля php
▪Веб-разработка на php — от Geekbrains
▪Основы языка php от Hexlet
▪Первое знакомство с php от Stepik
▪Основы php — курс от Академии IT
▪Самоучитель от PHP-S
▪Тренажер по php от Html Academy.
▪PHP программирование сайтов
▪Уроки по PHP от mooc и компании itproger.
▪Учебник по PHP от Html Academy.
▪PHP для начинающих — курс от опытного разработчика
▪Уроки php up
@phpshka
Please open Telegram to view this post
VIEW IN TELEGRAM
Какие бывают функции
Как работать со встроенными функциями
Сложение, конкатенация и остальные рассмотренные операции — это базовые возможности языков программирования. Но со строками можно поизводить более сложные операции. Их можно переворачивать, менять регистр букв, удалять лишние символы.
На более высоком уровне есть прикладная логика конкретного приложения. Программы списывают деньги, считают налоги, формируют отчеты. Количество подобных операций бесконечно и индивидуально для каждой программы. И все они должны быть выражены в коде. В этом помогают функции, с которыми мы познакомимся в этом уроке.
Какие бывают функции
Для выражения любой произвольной операции в программировании существуют функции. Они бывают встроенными и добавленными программистом. С одной встроенной функцией мы уже знакомы — это print_r().
Функции — одна из ключевых конструкций в программировании, без них невозможно сделать практически ничего. Сначала мы научимся пользоваться уже созданными функциями, а потом научимся создавать свои.
Как работать со встроенными функциями
Начнем с простых функций для работы над строками. Ниже пример вызова функции strrev(), которая переворачивает строку:
<?php
// Вызов функции strrev с аргументом 'Hello!'
$result = strrev('Hello!');
print_r($result); // => '!olleH'
Мы создали переменную $result и указали интерпретатору записать в нее результат, который вернет вызов функции strrev(). В этом смысле функции идентичны операциям — они всегда возвращают результат своей работы.
Запись
strrev('Hello!')
означает, что вызывается функция с именем strrev, в которую был передан аргумент или параметр 'Hello!'.Аргументы нужны функциям для работы так же, как операторам нужны операнды. Функция strrev() переворачивает ту строку, которая передается ей в аргументах.
Вызов функции всегда обозначается скобками (). Они идут сразу за именем функции. В скобках может быть любое количество аргументов, а иногда — ни одного. Количество зависит от используемой функции. Например, функция pow() принимает на вход два аргумента и возводит число, переданное первым параметром, в степень, переданную вторым параметром:
<?php
$result = pow(2, 3); // 2 * 2 * 2
print_r($result); // => 8
// В современном PHP появился специальный оператор для возведения в степень
$result = 2 ** 3; // 8
Теперь рассмотрим пример функции, которая не принимает аргументов. Функция rand() генерирует и возвращает случайное число:
<?php
$result = rand();
Операторы и функции — это одно и то же. Разница в том, как они записываются. Если представить сложение как функцию, то она будет выглядеть так:
<?php
3 + 5; // 8
sum(3, 5); // 8
// Или даже так
+(3, 5);
// В PHP такой синтаксис невозможен, но есть языки (например, lisp),
// где оно выглядит очень похоже
Вопрос на самопроверку. Как узнать, что возвращает вызов print_r()? Проверьте.
Задание
В коде программы определены две переменные, содержащие имена компаний. Посчитайте их общую длину в символах и выведите ее на экран.
Пишите решение в комментариях 👇
@phpshka
Please open Telegram to view this post
VIEW IN TELEGRAM
Использование SQLite в PHP
Для работы с базой данных (любой), в PHP сейчас принято использовать PDO (PHP Data Objects). Раньше было так: в зависимости от используемой базы, нужно было использовать и её специфичные функции. Поскольку PHP поддерживает больше десятка баз, то появился и «зоопарк» функций: отдельно для MySQL, отдельно для SQLite, отдельно для dBase и т.д.
Но с точки зрения разработчика, работа с базой состоит из нескольких этапов:
Подключение к базе.
Выполнение SQL-запросов.
Получение результата.
То есть не важно какая база, схема работы всегда одна и та же. Таким образом и был создан PDO, который представляет собой единый интерфейс для работы с базами. Вначале рассмотрим «чистый» вариант работы с PDO, а потом как его упростить и сделать удобным с помощью библиотек Albireo Framework.
▪ Читать дальше
@phpshka
Для работы с базой данных (любой), в PHP сейчас принято использовать PDO (PHP Data Objects). Раньше было так: в зависимости от используемой базы, нужно было использовать и её специфичные функции. Поскольку PHP поддерживает больше десятка баз, то появился и «зоопарк» функций: отдельно для MySQL, отдельно для SQLite, отдельно для dBase и т.д.
Но с точки зрения разработчика, работа с базой состоит из нескольких этапов:
Подключение к базе.
Выполнение SQL-запросов.
Получение результата.
То есть не важно какая база, схема работы всегда одна и та же. Таким образом и был создан PDO, который представляет собой единый интерфейс для работы с базами. Вначале рассмотрим «чистый» вариант работы с PDO, а потом как его упростить и сделать удобным с помощью библиотек Albireo Framework.
▪ Читать дальше
@phpshka