Библиотека PHP программиста 👨🏼‍💻👩‍💻
2.18K subscribers
316 photos
168 videos
7 files
331 links
Полезные материалы по PHP, Laravel, Symfony, CodeIgniter, CakePHP, Phalcon

По всем вопросам @evgenycarter
Download Telegram
Docker

Докер с нуля - практический пример. Как запустить docker nginx, php-fpm, mysql, phpmyadmin
Yii2 в Docker: настройка веб-сервера, установка Yii в контейнер
Самый быстрый способ поднятия проекта на Yii2 с помощью Docker
Подключение к базе данных и выполнение миграций Yii2 в Docker
Исправляем ошибку подключения к MySQL при выполнении миграций Yii2 в контейнере Docker

источник

👉 @php_lib
👍8
Портирование PHP в браузер с помощью WebAssembly

Разве не было бы здорово, если бы вы могли запускать PHP в браузере и при этом ничего не устанавливать на свой компьютер? Технология под названием WebAssembly позволяет вам сделать именно это.

По сути, WebAssembly - это формат двоичных инструкций для виртуальной машины на основе стека. Он разработан как переносимая цель для компиляции языков высокого уровня, таких как C/C++/Rust, что позволяет развертывать в Интернете клиентские и серверные приложения.

Мы можем использовать WebAssembly для использования возможностей PHP в браузере. Давайте посмотрим, как это сделать.

<script type = "text/php" data-stdout = "#output" data-stderr = "#error">
<?php
echo "Hello World!";
?>
</script>

<div id="output"></div>


https://www.amitmerchant.com/portable-php-in-the-browser-using-webassembly/

👉 @php_lib
👍4
PHP Quick Tips

Stop Doing This in PHP... | Avoid Nesting If Statements | Better Coding Habits in PHP
List of All Basic PHP Security You Need to Know | PHP Security for Beginners | PHP Security Lesson
3 Beginner Mistakes in PHP When it Comes to Form Data | Common PHP Beginner Mistakes | PHP Tips
Should You Learn Object Oriented PHP?
How to Log Errors in PHP | PHP Error Reporting and Debugging for Beginners | Log Website Errors
Learn Object Oriented PHP for Beginners | With Examples to Help You Understand! | OOP PHP Tutorial

источник

👉 @php_lib
👍3
This media is not supported in your browser
VIEW IN TELEGRAM
Совет по Laravel 💡

Один из моих любимых недокументированных советов, который я регулярно использую. Используйте "wasRecentlyCreated", чтобы проверить, была ли модель создана или найдена в базе данных.

👉 @php_lib
👍7
Совет по Laravel 💡

Вот 3 синтаксических способа определения внешнего ключа отношения belongsTo в миграциях.
Лично я считаю второй вариант более предпочтительным.

Schema:: create( 'orders', function (Blueprint $table) {
$table->id();
$table->unsignedBigInteger( 'user_id');
$table->foreign('user_id')->references( id') ->on('users");
});
// Or
Schema: :create( 'orders', function (Blueprint $table) {
$table->id();
$table->foreignId('user_id')->constrained();
});
/Or
Schema: :create( 'orders', function (Blueprint $table) {
$table->id();
$table->foreignIdFor (User: :class) ->constrained( ) ;
/
});

👉 @php_lib
👍4
Разработка пакетов Laravel : Ключевые шаги к созданию эффективного инструмента

Возможно, вы уже видели или использовали такие пакеты Laravel, как Sanctum, Passport, Nova и многие другие. Но задумывались ли вы когда-нибудь, как можно упаковать и развернуть свою разработку в пакет с любой логикой и поделиться им с другими разработчиками в сообществе Laravel?

Одной из ключевых особенностей фреймворка Laravel является экосистема пакетов, которые предоставляют потрясающие возможности для создания высококачественных приложений.

Пакеты - это основной способ добавления любой функциональности в проекты Laravel. Это может быть что угодно - от набора стилей и скриптов до сложной бизнес-логики и API-интеграций.

Код пакетов может быть как самостоятельным, так и служить дополнением к определенному фреймворку, и может разрабатываться и поддерживаться разными разработчиками.

В этой статье мы сосредоточимся на написании пакетов для фреймворка Laravel.

Концепция разработки пакетов включает в себя такие понятия, как ServiceProvider, Facades, Contracts. Все эти элементы обеспечивают стабильную работу приложений от тестирования до продакшена.

ServiceProvider - это точка контакта между контейнером приложения и вашим пакетом. Через него осуществляется управление всеми ресурсами приложения. Инъекция зависимостей - это лучшее, что можно придумать.

https://dev.to/dnsinyukov/laravel-package-development-key-steps-to-building-an-effective-tool-2a7a

👉 @php_lib
👍3
Советы по Laravel

Если вы создаете API в своем проекте:
🪐 Применяйте версионирование в самом первом релизе
🪐 Поддерживайте чистоту в routes/api.php, создавая разные файлы маршрутов для каждой версии👇

🧹 Более чистый код, 📈 Лучшие результаты

👉 @php_lib
👍8
Объекты значений в PHP 8: создание лучшего кода. Часть 1

В мире программирования поддержание качества кода на должном уровне имеет большое значение.

Паттерн Value Object способен значительно улучшить качество вашего кода, сделав его более надежным и удобным для сопровождения.

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

https://dev.to/cnastasi/value-objects-in-php-8-building-a-better-code-38k8

👉 @php_lib
👍3
Совет по Laravel 💡

Знаете ли вы, что диапазоны Eloquent можно использовать при определении других отношений?

👉 @php_lib
👍5
Объекты значений в PHP 8: расширенное использование. Часть 2

В предыдущей статье мы рассмотрели возможности объектов значений в повышении качества кода, надежности системы и минимизации необходимости обширной валидации. Теперь давайте погрузимся глубже, чтобы улучшить понимание и использование этого важнейшего инструмента.

https://dev.to/cnastasi/advanced-value-objects-in-php-8-1lp0

👉 @php_lib
👍3
Объекты значений в PHP 8: сущности

В предыдущих статьях мы узнали, как создавать фундаментальные объекты ценности, и осознали их роль в повышении стабильности и надежности наших приложений.
В этой статье мы рассмотрим еще один архитектурный паттерн, тесно связанный с объектами ценности: Сущности.

https://dev.to/cnastasi/value-object-in-php-8-entities-1jce

👉 @php_lib
👍4
Создание одностраничного приложения с помощью HTMX и Symfony

С появлением множества доступных сегодня Javascript-фреймворков веб-страницы стали более плавными и удобными с точки зрения пользовательского интерфейса, и Symfony тоже старается улучшить эту сферу с помощью таких инициатив, как Symfony UX.

Это прекрасно для пользователей, поскольку обеспечивает им беспроблемный и интуитивно понятный интерфейс, но это означает, что мы должны каждый день менять наш способ создания веб-сайтов, причем совершенно по-новому. Такие решения, как Symfony UX, начали появляться на свет, чтобы упростить разработку UX-ориентированных компонентов/сайтов. Мы уже рассказывали об этом конкретном инструменте в другой статье блога, и он отлично работает! Однако то, что мы используем Symfony, не делает его единственным вариантом!

Эта статья посвящена библиотеке, которая в последнее время набирает обороты в области библиотек, улучшающих UX, - htmx.

https://jolicode.com/blog/making-a-single-page-application-with-htmx-and-symfony

👉 @php_lib
👍3
PHP Annotated – January 2024

Добро пожаловать в январский выпуск PHP Annotated! Мы расскажем о самых интересных событиях в PHP-сообществе за последний месяц, представив отобранные новости, статьи, инструменты и видео.

https://blog.jetbrains.com/phpstorm/2024/01/php-annotated-january-2024/

👉 @php_lib
👍4
Разработка расширения для PHP на C++. Хуки встроенных функций и методов

PHP - это мощный и широко используемый язык программирования для веб-разработки. Однако иногда требуется расширение функциональности или модификация стандартного поведения PHP с использованием более низкоуровневых языков, таких как C++. В этой статье мы рассмотрим, как создать расширение для PHP на C++ на примере разработки функциональности, позволяющей перехватывать вызовы встроенных функций и методов классов в php.

https://habr.com/ru/articles/779344/

👉 @php_lib
👍3