Skip to content

Instantly share code, notes, and snippets.

@fesor
fesor / LINKS.md
Last active February 8, 2022 07:56
Годное чтиво
@fesor
fesor / README.md
Last active July 22, 2023 23:00
Symfony Request Object

Symfony Request Object

This is proof-of-concept implementation of laravel's like form requests.

Rational

Most of Symfony developers uses forms to map request data to some Data Transfer Object. This object then passes to validator and system start to work with validated data converted to be compatible with application model.

@fesor
fesor / Comment.php
Last active May 22, 2016 20:20
Doctrine is Cool
<?php
class Comment
{
private $message;
private $author;
private $createdAt;
public function __construct(string $message, User $author)
{
@fesor
fesor / README.md
Created April 9, 2016 23:07
Template of angular component (for NG6-starter)

This is template for jetbrains webstorm/phpstorm/idea for generating component placeholder file.

@fesor
fesor / index.md
Created April 2, 2016 22:42
Data Mapper
Title Change password
URL /api/users/passwordChange
Method POST
Headers Authorization=Bearer token
Content-type: application/json
Params password=current password
newPassword=new password
Data Params example
{
"password": "password",
"newPassword": "pass"
}
Success Response example{"token":"eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXUyJ9"}
<?php
class SecureCodeGenerator {
private $secureRandom;
public function __construct(SecureRandomInterface $secureRandom) {
this->secureRandom = $secureRandom;
}
public function generate() {
@fesor
fesor / README.md
Last active March 12, 2024 00:02
Доступ к данным или как мы учились не замечать базу данных

Оргенизация слоя хранения данных это всегда не простая задача, с кучей кейсов, вроде блокировки перезаписи, транзакции, сохранение целостности данных. В какой-то момент появились СУБД и обещали решить эти проблемы, но с ними появились новые - как нам работать с состоянием, которое мы храним?

Существует 4 основных подхода для организации рабоыт с базой данных, Table Gateway, Row Data Gateway, Active Record и Data Mapper. Все эти подходы объеденяет то, что они скрывают от нас базу данных и нюансы работы с ними (в частности SQL). На сегодняшний день самым популярным подходом являются Active Record и Data Mapper, все о них слышали, но для того что бы более полно представлять, как развивалась идея, стоит рассказать и о первых двух.

Table Data Gateway

Table Data Gateway, который так же можно встретить под названием DAO (Data Access Object), предоставляет нам объектное представление отдель

@fesor
fesor / README.md
Last active January 9, 2016 14:47
ng2-syntax

Разбираемся с синтаксисом шаблонов в Angular2

Многие впервые увидев синтаксис шаблонов Angular2 начинают причитать, мол ужас какой сделали, неужто нельзя было как в Angular1 хотя-бы. Зачем нужно было вводить это разнообразие скобочек, звездочек и прочей ерунды! Однако при ближайшем рассмотрении все становится куда проще, главное не пугаться.

Так как шаблоны в AngularJS являются неотъемлемой его частью, важно разобраться с ними в самом начале знакомства с новой версии этого фреймворка. Заодно обсудим, какие преимущества дает нам данный синтаксис по сравнению с angular 1.x. Причем лучше всего будет рассматривать это на небольших примерах.

Данная статья во многом основана на материалах этих двух статей:

@fesor
fesor / angular-components-evolution.js
Last active January 13, 2017 21:17
Angular Components Evolution
// Контроллеры не особо видоизменились.
// Единственное что поменялось - больше ненадо использовать $scope.
class MyComponentController {
constructor(myService) {
this.myService = myService;
}
doSomething() {
this.myService.doSomething();
}