🗣 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
@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
Цель проекта — предоставить разработчикам возможности, которые могут не быть внедрены PH.
https://pxplang.org/blog/an-introduction-to-pxp
@phpshka
pxplang.org
PXP: Extended Preprocessor
A suite of high-performance tools for PHP developers – includes a code formatter, static analyser, language server and superset language.
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
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
В статье рассказывается о том, как создать собственный шаблонный движок на PHP для рендеринга выражений с использованием оператора "echo".
Автор объясняет, что шаблонный движок - это инструмент, который позволяет разработчикам отделить логику приложения от его представления. Дается детальное описание базовой структуры шаблонного движка, включая классы и методы, необходимые для парсинга шаблонов и выполнения операторов "echo" внутри них.
@phpshka
Ryan Chandler
Build Your Own Template Engine in PHP - Rendering & Echo – Ryan Chandler
Телеграм-бот и сайт для систематизации задач, или как хобби участвует в основной работе
https://habr.com/ru/articles/751920/
@phpshka
https://habr.com/ru/articles/751920/
@phpshka
Хабр
Телеграм-бот и сайт для систематизации задач, или как хобби участвует в основной работе
Добрый день, читатель! Об истории Работал значит, работал я, а задачи падали-падали. Копились. Задачи специфические, не быстро решаемые. Пробовал различные приложения, но толку все никакого не было –...
Статистика версий 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.*.
Регулярный обзор используемых версий 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.*.
Joomla-дайджест. 1-е полугодие 2023 года
https://habr.com/ru/articles/752484/
https://habr.com/ru/articles/752484/
Хабр
Joomla-дайджест. 1-е полугодие 2023 года
Все главные новости из мира Joomla с момента выхода предыдущего дайджеста 24 января 2023 года в одной статье. Традиционно наш дайджест обозревает новости, расширения, шаблоны и статьи из мира Joomla....
Лучший способ получать свежие обновлении и следить за трендами в разработке.
Машинное обучение: 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
Папка Go разработчика: t.me/addlist/MUtJEeJSxeY2YTFi
Папка Python разработчика: t.me/addlist/eEPya-HF6mkxMGIy
Папка машинное обучение: https://t.me/addlist/_FjtIq8qMhU0NTYy
🇬🇧Английский: 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
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
Универсальная система управления BuxarUMS. Начало
https://habr.com/ru/articles/753220/
https://habr.com/ru/articles/753220/
Хабр
Универсальная система управления BuxarUMS. Начало
Здравствуйте, товарищи. Уже много лет был в поиске универсального движка для управления многочисленными своими проектами, но тщетно. Сейчас в проектах: обменный пункт электронных валют, хостинг,...
Гайд 2023 Xdebug в PHPSTORM + Virtual server + Docker для macOS с пробросом портов
https://habr.com/ru/articles/753264/
https://habr.com/ru/articles/753264/
Хабр
Гайд 2023 Xdebug в PHPSTORM + Virtual server + Docker для macOS с пробросом портов
Гайд для remote подключения. Постарался обьяснить максимально подробно для новичков, так как понимаю как больно прыгать по статьям и теряться в последовательности. Тема актуальная, в силу того, что...
1С-Битрикс. Массовая загрузка элементов в Highload-блоки
https://habr.com/ru/articles/753460/
https://habr.com/ru/articles/753460/
Хабр
1С-Битрикс. Массовая загрузка элементов в Highload-блоки
При загрузке данных в Highload-блоки возможна ситуация, когда объем загружаемых данных очень велик. Тем не менее, самый распространенный путь для добавления данных - их перебор в цикле, и последующее...