Design Patterns (Шаблоны Проектирования)
Урок 01. PHP - Design Patterns. Введение. Для чего нужны шаблоны проектирования?
Урок 02. PHP - Design Patterns. Singleton. Multione container
Урок 03. PHP - Design Patterns. Dependency injection. DI container
Урок 04. PHP - Design Patterns. Observer
Паттерны проектирования GOF - это просто
Шаблон проектирования Prototype. REST API. (Программирование. Учебная сессия)
👉 @php_lib
Урок 01. PHP - Design Patterns. Введение. Для чего нужны шаблоны проектирования?
Урок 02. PHP - Design Patterns. Singleton. Multione container
Урок 03. PHP - Design Patterns. Dependency injection. DI container
Урок 04. PHP - Design Patterns. Observer
Паттерны проектирования GOF - это просто
Шаблон проектирования Prototype. REST API. (Программирование. Учебная сессия)
👉 @php_lib
👍7
При использовании «сырых» запросов не забывайте передавать в него параметры через привязку.
Это защитит от SQL-инъекций.
👉 @php_lib
Это защитит от SQL-инъекций.
👉 @php_lib
👍6
Авторизации с помощью php
1. Создайте базу данных MySQL, в которой будут храниться информация о пользователях. Таблица должна содержать поля «Имя пользователя», «Пароль» и «Права доступа».
2. Создайте страницу авторизации, которая будет содержать форму для ввода имени пользователя и пароля.
3. Напишите код PHP, который будет проверять введенную информацию с информацией из базы данных. Если введенные данные соответствуют данным из базы данных, пользователь будет авторизован.
4. После успешной авторизации пользователя перенаправьте его на страницу приветствия. Эта страница должна быть доступна только для авторизованных пользователей.
5. Для безопасности всегда используйте хеширование паролей, прежде чем их сохранять в базе данных.
👉 @php_lib
1. Создайте базу данных MySQL, в которой будут храниться информация о пользователях. Таблица должна содержать поля «Имя пользователя», «Пароль» и «Права доступа».
2. Создайте страницу авторизации, которая будет содержать форму для ввода имени пользователя и пароля.
3. Напишите код PHP, который будет проверять введенную информацию с информацией из базы данных. Если введенные данные соответствуют данным из базы данных, пользователь будет авторизован.
4. После успешной авторизации пользователя перенаправьте его на страницу приветствия. Эта страница должна быть доступна только для авторизованных пользователей.
5. Для безопасности всегда используйте хеширование паролей, прежде чем их сохранять в базе данных.
<?php
session_start();
if(isset($_POST['submit']))
{
// Проверяем данные из формы
$username = $_POST['username'];
$password = $_POST['password'];
// Подключаемся к БД
$host = 'localhost';
$user = 'root';
$pass = '';
$db_name = 'auth';
$link = mysqli_connect($host, $user, $pass, $db_name);
// Делаем запрос в БД для проверки данных
$query = "SELECT * FROM users WHERE username='$username' AND password='$password'";
$result = mysqli_query($link, $query) or die(mysqli_error($link));
$user_data = mysqli_fetch_assoc($result);
// Проверяем, существует ли пользователь
if(count($user_data) > 0)
{
// Если данные верны, то устанавливаем переменные сессии
$_SESSION['username'] = $user_data['username'];
$_SESSION['id_user'] = $user_data['id_user'];
// Перенаправляем пользователя на главную страницу
header("Location: index.php");
exit;
}
else
{
// Если данные не верны, выводим сообщение об ошибке
echo "Неверные данные для входа";
}
}
?>
<form method="post">
<label>Логин:</label><br/>
<input type="text" name="username"/><br/>
<label>Пароль:</label><br/>
<input type="password" name="password"/><br/>
<input type="submit" name="submit" value="Войти"/>
</form>
👉 @php_lib
👎20👍7💩1
В Laravel 9.31 команда dd теперь показывает откуда она была вызвана
Этот pull request улучшает вывод dd, добавляя исходный файл/строку в вывод dd.
Очень часто при разработке приложений Laravel мы используем dd и забываем о первоначальном месте, где был оставлен dd. Этот запрос на исправление решает эту проблему, добавляя очень минимальный серый текст с исходным файлом/строкой:
https://github.com/laravel/framework/pull/44211
👉 @php_lib
Этот pull request улучшает вывод dd, добавляя исходный файл/строку в вывод dd.
Очень часто при разработке приложений Laravel мы используем dd и забываем о первоначальном месте, где был оставлен dd. Этот запрос на исправление решает эту проблему, добавляя очень минимальный серый текст с исходным файлом/строкой:
https://github.com/laravel/framework/pull/44211
👉 @php_lib
Простая аутентификация на PHP
Многие новички до сих пор попадают в тупик при написании простейшей аутентификации в PHP. На Тостере с завидной регулярностью попадаются вопросы о том, как сравнить сохраненный пароль с паролем полученным из формы логина. Здесь будет краткая статья-туториал на эту тему.
Disclaimer: статья рассчитана на совершенных новичков. Умудрённые опытом разработчики ничего нового здесь не найдут, но могут указать на возможные недочёты =).
Для написания системы аутентификации будем использовать базу данных MySQL/MariaDB, PHP, PDO, функции для работы с паролями, для построения интерфейса возьмём bootstrap.
Полный код примера доступен на гитхабе: ссылка на Github.
👉 @php_lib
Многие новички до сих пор попадают в тупик при написании простейшей аутентификации в PHP. На Тостере с завидной регулярностью попадаются вопросы о том, как сравнить сохраненный пароль с паролем полученным из формы логина. Здесь будет краткая статья-туториал на эту тему.
Disclaimer: статья рассчитана на совершенных новичков. Умудрённые опытом разработчики ничего нового здесь не найдут, но могут указать на возможные недочёты =).
Для написания системы аутентификации будем использовать базу данных MySQL/MariaDB, PHP, PDO, функции для работы с паролями, для построения интерфейса возьмём bootstrap.
Полный код примера доступен на гитхабе: ссылка на Github.
👉 @php_lib
👍6
78% веб-сайта работает на PHP (3% на PHP)
Сегодня PHP используется почти в 78% всех сайтов, язык программирования которых мы знаем. На PHP работают такие популярные сайты, как Slack, Etsy, Wikipedia, WordPress, Mailchimp, Canva, Indeed, Investing.com и другие.
https://bookflow.ru/78-veb-sajta-rabotaet-na-php-3-na-php-8/
👉 @php_lib
Сегодня PHP используется почти в 78% всех сайтов, язык программирования которых мы знаем. На PHP работают такие популярные сайты, как Slack, Etsy, Wikipedia, WordPress, Mailchimp, Canva, Indeed, Investing.com и другие.
https://bookflow.ru/78-veb-sajta-rabotaet-na-php-3-na-php-8/
👉 @php_lib
bookflow.ru
78% веб-сайта работает на PHP (3% на PHP 8)
Сегодня PHP используется почти в 78% всех сайтов, язык программирования которых мы знаем. На PHP работают такие популярные сайты, как Slack, Etsy, Wikipedia,
👍1
Как протестировать маршруты в Symfony , чтобы подготовиться к серьёзному рефакторингу
https://tomasvotruba.com/blog/how-to-test-symfony-routes-to-make-huge-refactorings-safe/
👉 @php_lib
https://tomasvotruba.com/blog/how-to-test-symfony-routes-to-make-huge-refactorings-safe/
👉 @php_lib
Tomasvotruba
How to test Symfony Routes to make Huge Refactoring Safe
The beauty of [pattern refactoring](/blog/2019/04/15/pattern-refactoring/) with Rector is transforming thousands of elements at once. Like nuclear chain reaction. But to do it safely, we need a high-quality test to ensure the code still works.
Does a high…
Does a high…
This media is not supported in your browser
VIEW IN TELEGRAM
Полностью автоматический RESTful PHP Router
Почему стоит использовать Scrawler Router?
Полностью автоматический, вам не нужно определять ни одного маршрута вручную.
Никаких конфигураций, работает из коробки с любым php проектом.
Стабилен и используется внутри многих проектов Corpuvision.
Экономит много времени при создании RESTful приложений
https://github.com/scrawler-labs/router
👉 @php_lib
Почему стоит использовать Scrawler Router?
Полностью автоматический, вам не нужно определять ни одного маршрута вручную.
Никаких конфигураций, работает из коробки с любым php проектом.
Стабилен и используется внутри многих проектов Corpuvision.
Экономит много времени при создании RESTful приложений
https://github.com/scrawler-labs/router
👉 @php_lib
Работаем с XML как с массивом
Хочу поделиться с вами опытом в парсинге XML файлов размером до четырёх гигабайт. Я научу вас, как это делать быстро.
В двух словах для быстрого парсинга файлов надо пользоваться XMLReader в связке с yield..
https://habr.com/ru/post/712106/
👉 @php_lib
Хочу поделиться с вами опытом в парсинге XML файлов размером до четырёх гигабайт. Я научу вас, как это делать быстро.
В двух словах для быстрого парсинга файлов надо пользоваться XMLReader в связке с yield..
https://habr.com/ru/post/712106/
👉 @php_lib
Хабр
Работаем с XML как с массивом, версия 2
Всем привет. Хочу поделиться с вами опытом в парсинге XML файлов размером до четырёх гигабайт. Что бы это происходило быстро, надо читать файл последовательно, частями, парсить только нужные элементы....
👍3
Парсинг HTML с помощью PHP и SQL. Немного провокационный пример с анализом пользователей Хабра
Выковыривание информации из html — это скучно. Очень. Между тем, эта потребность выстреливает редко, но метко (© Суворов). Из-за этого есть спрос на готовые и короткие инструкции о том, как это сделать, чтобы не тратить время на изучение. Перед вами как раз такая.
Чтобы добавить хоть какой-то интерес скучнейшему занятию мы для примера будем парсить пользователей Хабра. А чтобы не мелочиться — ещё и реанимируем для этого экспериментальную библиотеку 11-летней давности.
https://habr.com/ru/post/709262/
👉 @php_lib
Выковыривание информации из html — это скучно. Очень. Между тем, эта потребность выстреливает редко, но метко (© Суворов). Из-за этого есть спрос на готовые и короткие инструкции о том, как это сделать, чтобы не тратить время на изучение. Перед вами как раз такая.
Чтобы добавить хоть какой-то интерес скучнейшему занятию мы для примера будем парсить пользователей Хабра. А чтобы не мелочиться — ещё и реанимируем для этого экспериментальную библиотеку 11-летней давности.
https://habr.com/ru/post/709262/
👉 @php_lib
Хабр
Парсинг HTML с помощью PHP и SQL. Немного провокационный пример с анализом пользователей Хабра
Выковыривание информации из html — это скучно. Очень. Между тем, эта потребность выстреливает редко, но метко (© Суворов). Из-за этого есть спрос на готовые и короткие инструкции о том, как это...
👍2
TLDR - Плагин для PhpStorm с поддержкой искусственного интеллекта, который объясняет код на простом английском языке.
https://plugins.jetbrains.com/plugin/20050-tldr
👉 @php_lib
https://plugins.jetbrains.com/plugin/20050-tldr
👉 @php_lib
👏5
Как ускорить приложение за счёт PHP-FPM (няшим FPM conf)
Сегодня хочу поговорить о том, как ускорить приложение через конфигурирование PHP-FPM.
Сейчас самый популярный (из тех с которыми я сталкивался) стек на котором поднимается PHP приложение это веб сервер nginx и процесс-менеджер php-fpm.
Я хочу поднять простое приложение с Laravel проектом, которое устанавливается со всеми параметрами по умолчанию. Попробуем это приложение нагрузить пользователями с помощью простого Javascript скрипта и посмотрим как ему удастся справиться с нагрузкой и как мы можем повысить обрабатываемую нагрузку только конфигурированием php-fpm. В конце статьи можно будет найти ссылку на GitHub и попробовать своими руками.
https://habr.com/ru/post/576344/
👉 @php_lib
Сегодня хочу поговорить о том, как ускорить приложение через конфигурирование PHP-FPM.
Сейчас самый популярный (из тех с которыми я сталкивался) стек на котором поднимается PHP приложение это веб сервер nginx и процесс-менеджер php-fpm.
Я хочу поднять простое приложение с Laravel проектом, которое устанавливается со всеми параметрами по умолчанию. Попробуем это приложение нагрузить пользователями с помощью простого Javascript скрипта и посмотрим как ему удастся справиться с нагрузкой и как мы можем повысить обрабатываемую нагрузку только конфигурированием php-fpm. В конце статьи можно будет найти ссылку на GitHub и попробовать своими руками.
https://habr.com/ru/post/576344/
👉 @php_lib
👍7
Тестирование PHP проектов на примере Symfony
Хочу описать свои наработки и устоявшиеся подходы к тестированию PHP проектов. Последние годы я работаю с Symfony и здесь будет достаточно моментов специфичных для этого фреймворка. Так же в этой статье термин функциональные тесты (functional) является синонимом End-to-End тестов. Статья рассчитана на разработчиков уже знакомых с PHPUnit и Symfony, структурой composer файла. Врочем, здесь есть и общеизвестные моменты, чтобы облегчить понимание тем, кто только начинает писать тесты. Статья призвана упорядочить знания и показать какие-то удобные подходы. Формат статьи не позволяет раскрыть все нюансы. Тем не менее, я постараюсь озвучить все основные моменты, применяемые в работе и которые лично мне помогают на практике.
https://habr.com/ru/post/713454/
👉 @php_lib
Хочу описать свои наработки и устоявшиеся подходы к тестированию PHP проектов. Последние годы я работаю с Symfony и здесь будет достаточно моментов специфичных для этого фреймворка. Так же в этой статье термин функциональные тесты (functional) является синонимом End-to-End тестов. Статья рассчитана на разработчиков уже знакомых с PHPUnit и Symfony, структурой composer файла. Врочем, здесь есть и общеизвестные моменты, чтобы облегчить понимание тем, кто только начинает писать тесты. Статья призвана упорядочить знания и показать какие-то удобные подходы. Формат статьи не позволяет раскрыть все нюансы. Тем не менее, я постараюсь озвучить все основные моменты, применяемые в работе и которые лично мне помогают на практике.
https://habr.com/ru/post/713454/
👉 @php_lib
👍3
Гайд по enum
Это мое личное руководство по использованию перечислений в PHP. Каждый раздел описывает правило, а также личное мнение, стоящее за этим правилом.
https://stitcher.io/blog/php-enum-style-guide
👉 @php_lib
Это мое личное руководство по использованию перечислений в PHP. Каждый раздел описывает правило, а также личное мнение, стоящее за этим правилом.
https://stitcher.io/blog/php-enum-style-guide
👉 @php_lib
stitcher.io
My PHP enum style guide - stitcher.io
A blog about modern PHP, the web, and programming in general. Follow my newsletter and YouTube channel as well.
👍8