PHP Academy
8.33K subscribers
96 photos
22 videos
267 links
@tombange - с вопросами
Download Telegram
Building Scalable PHP Web Applications Using the Cloud

Автор:
Jonathan Bartlett
Год издания: 2019

#php

Скачать книгу
PHP: The Ultimate Guide

Автор:
Sufyan bin Uzayr
Год издания: 2022

#php #en

Скачать книгу
PHP and MySQL Web Development (2017)

Авторы:
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 в функциональном стиле с помощью IterTools PHP

Бесплатная опенсорсная библиотека IterTools PHP разработана автором другой популярной библиотеки MathPHP. IterTools вносит множество полезной функциональности в язык, реализуя удобную и гибкую работу с итерируемыми сущностями в функциональном стиле — в духе itertools из Python.

Все методы библиотеки поддерживают работу с любыми итерируемыми сущностями (array, Generator, Iterator, Traversable), что выгодно отличает её от элементов функционального программирования, идущих в комплекте с языком (они, как правило, работают только с одним типом данных).

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

Подробности, справочник на русском и инструкция тут:

https://github.com/markrogoyski/itertools-php

#php #библиотека
Practical Laravel

Автор:
Paola Vallejo, Daniel Correa
Год издания: 2022

#php #en

Скачать книгу

@phpshka
PHP 8 Revealed

Автор:
Gunnard Engebreth
Год издания: 2021

#php #laravel #english

Скачать книгу

@phpshka
🗣 Laravel курс с нуля. База. Уровень с нуля.

Laravel — это PHP-фреймворк с открытым исходным кодом, специально разработанный для создания сложных сайтов и веб-приложений. Позволяет упростить аутентификацию, маршрутизацию, сессии, кэширование, архитектуру приложения, работу с базой данных.
📌 Смотреть бесплатно

#Lavarel

@phpshka
📋Использование простых алгоритмов в PHP: рекурсивный метод

Построение древовидной иерархии

Необходимо использовать рекурсивный метод для представления этого массива в виде древовидного меню.

Алгоритм (паттерн, если так хотите) будет примерно следующим:

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
🖥 Бесплатные курсы для PHP программистов, актуальные в 2023.

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
🖥 PHP: Функции и их вызов
Какие бывают функции
Как работать со встроенными функциями


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

На более высоком уровне есть прикладная логика конкретного приложения. Программы списывают деньги, считают налоги, формируют отчеты. Количество подобных операций бесконечно и индивидуально для каждой программы. И все они должны быть выражены в коде. В этом помогают функции, с которыми мы познакомимся в этом уроке.

Какие бывают функции
Для выражения любой произвольной операции в программировании существуют функции. Они бывают встроенными и добавленными программистом. С одной встроенной функцией мы уже знакомы — это 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
👍NativePHP новый фреймворк для быстрой разработки десктопных приложений на PHP+Laravel.

🔵С его помощью можно создавать кросс-платформенные приложения, используя привычные инструменты как HTML, CSS, JavaScript и PHP.

🔵Он включает в себя набор классов для взаимодействия с операционной системой, инструменты для создания и сборки приложений, а также статическое PHP-окружение для автоматической работы на компьютере пользователя.

🔵В комплекте предоставляются полезные функции, такие как управление окнами, меню, работа с файлами, поддержка баз данных (SQLite) и уведомления.

@phpshka
Please open Telegram to view this post
VIEW IN TELEGRAM
Не так давноначалась разработка языка PXP — это надстройка PHP и работает примерно как Typescript и JS. PXP-код транспилирует в обычный PHP, чтобы сохранить обратную совместимость и использовать существующую инфраструктуру и инструменты.

Цель проекта — предоставить разработчикам возможности, которые могут не быть внедрены PH.

https://pxplang.org/blog/an-introduction-to-pxp

@phpshka
Forwarded from C++ Academy
Как два байта переслать: контрибьютим в KPHP

KPHP - компилятор для PHP. Он конвертирует PHP код в код на C++, компилируя который, ускоряет производительность в десятки раз. Это open-source проект, созданный ВКонтакте. Благодаря ему собирается огромный монолит ВКонтакте на 9 миллионов строк PHP кода в обычный бинарник, запуская который вы локально поднимаете полноценный ВКонтакте.

План
1. Подготовка

2. runtime
добавление функций
типы
флаги
изменение подключаемых библиотек

3. Тесты
cpp тесты
php тесты

4. pull_request

Подготовка
Устанавливаем kphp из репозитория

runtime

Добавление функций

В качестве примера возьмем ситуацию, когда нам нужно реализовать функцию mb_check_encoding из php. Первым делом идем в доки (*изображение)

Узнаем, что функция проверяет кодировку строки или массива строк. Массив строк обрабатывается рекурсивно, так что сфокусируемся на функции, работающей для строки.
Теперь идем в код php смотреть как работает функция в php:

📌Продолжение

@cpluspluc
Создание собственного движка шаблонов на PHP

В статье рассказывается о том, как создать собственный шаблонный движок на PHP для рендеринга выражений с использованием оператора "echo".

Автор объясняет, что шаблонный движок - это инструмент, который позволяет разработчикам отделить логику приложения от его представления. Дается детальное описание базовой структуры шаблонного движка, включая классы и методы, необходимые для парсинга шаблонов и выполнения операторов "echo" внутри них.

@phpshka
Почему связанный список лучше массива
https://habr.com/ru/articles/752310/
Статистика версий PHP — июль 2023 г.

Регулярный обзор используемых версий PHP на основе данных, которые клиенты отправляют на packagist.org (например, когда они запускают composer update команду). 68,8% клиентов используют PHP 8.*, а на PHP 7.* приходится 29,7%. Медленный, но хороший рост для PHP 8 по сравнению с прошлым годом, когда он составил 59,7%.
Согласно статистике Remi Repository, которая, вероятно, представляет несколько иной сегмент пользователей, 35% пользователей используют PHP 8.* и 63% используют PHP 7.*.