PHP Academy
6.14K subscribers
76 photos
21 videos
242 links
@tombange - с вопросами
Download Telegram
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.*.
⚡️Маст-хэв список для программистов, каналы с последними книжными новинками, библиотеками, разбором кода и актуальной информацией, связанной с вашим языком программирования.
Лучший способ получать свежие обновлении и следить за трендами в разработке.

Машинное обучение: t.me/ai_machinelearning_big_data
Python: t.me/pythonl
C#: t.me/csharp_ci
C/C++/ t.me/cpluspluc
Data Science: t.me/data_analysis_ml
Devops: t.me/devOPSitsec
Go: t.me/Golang_google
Базы данных: t.me/sqlhub
Rust: t.me/rust_code
Javascript: t.me/javascriptv
React: t.me/react_tg
PHP: t.me/phpshka
Android: t.me/android_its
Мобильная разработка: t.me/mobdevelop
Linux: t.me/+A8jY79rcyKJlYWY6
Big Data: t.me/bigdatai
Хакинг: t.me/linuxkalii
Тестирование: https://t.me/+F9jPLmMFqq1kNTMy
Java: t.me/javatg

💼 Папка с вакансиями: t.me/addlist/_zyy_jQ_QUsyM2Vi
Папка Go разработчика: t.me/addlist/MUtJEeJSxeY2YTFi
Папка Python разработчика: t.me/addlist/eEPya-HF6mkxMGIy

Папка машинное обучение: https://t.me/addlist/_FjtIq8qMhU0NTYy

📕 Бесплатные Книги для программистов: https://t.me/addlist/YZ0EI8Ya4OJjYzEy

🎞 YouTube канал: https://www.youtube.com/@uproger

😆ИТ-Мемы: t.me/memes_prog

🇬🇧Английский: t.me/english_forprogrammers
Please open Telegram to view this post
VIEW IN TELEGRAM
Интернет магазин с нуля на Laravel

1. Презентация
2. Подготовка и настройка проекта
3. Подготовка
4. База данных
5. База данных
6. Аутентификация и socialite
7. Главная страница и intervention image
8. Фильтры, Laravel Scout, full text поиск
9. Характеристики, опции товара. EAV

#video #laravel

https://www.youtube.com/watch?v=CdHqpXNKVls&list=PLTucyHptHtTkveNJf17ypoZoG3pdnvs6v&ab_channel=%D0%9F%D1%80%D0%BE%D1%81%D1%82%D0%BE%D0%BELaravel.CutCode

@phpshka