Введение в REST API — RESTful веб-сервисы
https://www.springboottutorial.com/introduction-to-rest-api
Различия REST и SOAP
https://www.springboottutorial.com/rest-vs-soap-web-services
Разработка REST API — что такое Contract First (контракт в первую очередь)?
https://www.springboottutorial.com/rest-api-contRact-first-approach
Разработка REST API — что такое Code First подход?
https://www.springboottutorial.com/rest-api-code-first-approach
REST API — Что такое HATEOAS?
https://www.springboottutorial.com/rest-api-what-is-hateoas
Рекомендации по REST API — примеры проектирования веб-сервисов на Java и Spring
https://www.springboottutorial.com/rest-api-best-practices-with-java-and-spring
👉 @php_lib
https://www.springboottutorial.com/introduction-to-rest-api
Различия REST и SOAP
https://www.springboottutorial.com/rest-vs-soap-web-services
Разработка REST API — что такое Contract First (контракт в первую очередь)?
https://www.springboottutorial.com/rest-api-contRact-first-approach
Разработка REST API — что такое Code First подход?
https://www.springboottutorial.com/rest-api-code-first-approach
REST API — Что такое HATEOAS?
https://www.springboottutorial.com/rest-api-what-is-hateoas
Рекомендации по REST API — примеры проектирования веб-сервисов на Java и Spring
https://www.springboottutorial.com/rest-api-best-practices-with-java-and-spring
👉 @php_lib
👍6❤1
Yii3 в подпапке домена
В большинстве случаев приложение доступно через корневую директорию домена, например https://example.com/. Но иногда требуется разместить приложение в подпапке, например https://example.com/application/. Для этого нужно выполнить несколько манипуляций:
создать подпапку в корне домена;
перенести файлы приложения, в том числе точку входа index.php, из корня в подпапку;
изменить пути в перемещённых файлах;
изменить пути в конфигурации приложения;
настроить маршрутизацию с учётом подпапки.
https://predvoditelev.ru/notes/yii3-subfolder/
👉 @php_lib
В большинстве случаев приложение доступно через корневую директорию домена, например https://example.com/. Но иногда требуется разместить приложение в подпапке, например https://example.com/application/. Для этого нужно выполнить несколько манипуляций:
создать подпапку в корне домена;
перенести файлы приложения, в том числе точку входа index.php, из корня в подпапку;
изменить пути в перемещённых файлах;
изменить пути в конфигурации приложения;
настроить маршрутизацию с учётом подпапки.
https://predvoditelev.ru/notes/yii3-subfolder/
👉 @php_lib
👍2
This media is not supported in your browser
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
PHP
How to read a file in PHP
How to get the request type (GET, POST, PUT, DELETE) in PHP
How to get the first element of an array in PHP
Fibonacci Sequence in PHP
How to get the first or last key of array in PHP
FizzBuzz - Coding Challenge in PHP
👉 @php_lib
How to read a file in PHP
How to get the request type (GET, POST, PUT, DELETE) in PHP
How to get the first element of an array in PHP
Fibonacci Sequence in PHP
How to get the first or last key of array in PHP
FizzBuzz - Coding Challenge in PHP
👉 @php_lib
👍5
Честные модули внутри PHP: теперь они существуют
Низкий порог входа и строгость языка программирования — вещи обычно несовместимые. Потому что ты либо, как Rust, бьёшь по рукам borrow checker’ом — либо, как PHP, позволяешь не задумываться о типах и быстро прототипировать.
https://habr.com/ru/company/vk/blog/705998/
👉 @php_lib
Низкий порог входа и строгость языка программирования — вещи обычно несовместимые. Потому что ты либо, как Rust, бьёшь по рукам borrow checker’ом — либо, как PHP, позволяешь не задумываться о типах и быстро прототипировать.
https://habr.com/ru/company/vk/blog/705998/
👉 @php_lib
👍3
Обзор расширения OPCache для PHP
PHP — это скриптовый язык, который по умолчанию компилирует те файлы, которые вам нужно запустить. Во время компилирования он извлекает опкоды, исполняет их, а затем немедленно уничтожает. PHP был так разработан: когда он переходит к выполнению запроса R, то «забывает» всё, что было выполнено в ходе запроса R-1.
https://habr.com/ru/company/vk/blog/310054/
👉 @php_lib
PHP — это скриптовый язык, который по умолчанию компилирует те файлы, которые вам нужно запустить. Во время компилирования он извлекает опкоды, исполняет их, а затем немедленно уничтожает. PHP был так разработан: когда он переходит к выполнению запроса R, то «забывает» всё, что было выполнено в ходе запроса R-1.
https://habr.com/ru/company/vk/blog/310054/
👉 @php_lib
👍4
Yii3 Overview
За свою профессиональную карьеру я успел поработать с множеством инструментов — как на PHP-стеке, так и вне его: базы данных, различные очереди, поисковые движки и не только. Последние пару лет я — один из мейнтейнеров фреймворка Yii3. За это время было вложено много сил в перестройку фреймворка из монолитного в полностью компонентный. Время от времени заглядываю и в другие проекты с открытым исходным кодом, но в основном помогаю команде развивать Yii3.
Yii3 Overview 1. Вступление
https://habr.com/ru/post/695664/
Yii3 Overview 2. Вспомогательные инструменты разработки
https://habr.com/ru/post/697586/
Yii3 Overview 3. Обзор app-* шаблонов и demo
https://habr.com/ru/post/697676/
👉 @php_lib
За свою профессиональную карьеру я успел поработать с множеством инструментов — как на PHP-стеке, так и вне его: базы данных, различные очереди, поисковые движки и не только. Последние пару лет я — один из мейнтейнеров фреймворка Yii3. За это время было вложено много сил в перестройку фреймворка из монолитного в полностью компонентный. Время от времени заглядываю и в другие проекты с открытым исходным кодом, но в основном помогаю команде развивать Yii3.
Yii3 Overview 1. Вступление
https://habr.com/ru/post/695664/
Yii3 Overview 2. Вспомогательные инструменты разработки
https://habr.com/ru/post/697586/
Yii3 Overview 3. Обзор app-* шаблонов и demo
https://habr.com/ru/post/697676/
👉 @php_lib
👍6
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