Skip to content

Instantly share code, notes, and snippets.

View rela589n's full-sized avatar

Yevhen Sidelnyk rela589n

View GitHub Profile
@rela589n
rela589n / lecture.md
Last active September 14, 2020 10:57
lecture.md

Роль командної роботи в створенні програмного забезпечення. Загальна характеристика команди розробників ПЗ. Класифікація команд

(1) Роль командної роботи в створенні програмного забезпечення

Команда – це не просто група, під якою розуміється об’єднання людей за інтересами. Команда – це група, що діє спільно з метою досягнення певних цілей або результатів, до яких прагне кожна людина з групи.

Основні відмінності між командою і групою показано в таблиці 1.

              Група                     Команда 
@rela589n
rela589n / categories-bottom-to-top.sql
Last active March 6, 2023 07:24
Traverse categories tree
WITH RECURSIVE child_to_parent_query AS (
SELECT category.id,
category.parent_category_id,
0 as level
FROM category
LEFT JOIN category excludeChildren
ON excludeChildren.parent_category_id = category.id
WHERE excludeChildren.id IS NULL
UNION DISTINCT
SELECT category.id,
@rela589n
rela589n / transposeMatrix.php
Last active June 10, 2023 07:34
Transpose Matrix
function transposeMatrix(array $matrix): array
{
if (1 === count($matrix)) {
return array_chunk(reset($matrix), 1);
}
return array_map(null, ...$matrix);
}
@rela589n
rela589n / FilesystemAdapter.php
Last active June 24, 2023 08:17
Streaming file response
public function response($path, $name = null, array $headers = [], $disposition = 'inline')
{
$response = new StreamedResponse;
$filename = $name ?? basename($path);
$disposition = $response->headers->makeDisposition(
$disposition, $filename, $this->fallbackName($filename)
);
@rela589n
rela589n / services.yaml
Created July 17, 2023 14:06
Doctrine schema filter using service declaration
app.dbal.schema_filter:
class: Doctrine\Bundle\DoctrineBundle\Dbal\RegexSchemaAssetFilter
arguments: [ '#^(?!(table1|table2)$).*#' ]
tags:
- { name: doctrine.dbal.schema_filter }
@rela589n
rela589n / repository.php
Created September 28, 2023 07:14
doctrine hydrate single column result
$queryBuilder = $this->createQueryBuilder('journal');
$queryBuilder
->select('journal.number');
/** @var array $result */
$result = $queryBuilder->getQuery()->getSingleColumnResult();
@rela589n
rela589n / load_table.sh
Created October 24, 2023 09:17
Load table from SQL-dump
zcat ./table-dump.sql.gz | docker compose exec -T --env PGPASSWORD=qwerty postgresql_container psql -h postgresql_container -U postgres_user "database_name"
@rela589n
rela589n / |Controller.php
Created October 26, 2023 15:02
Symfony streaming responses from the file system
return new StreamedResponse(
static fn (): int => fpassthru($photo->stream),
headers: [
'Content-Type' => $photo->mimeType,
'Content-Length' => $photo->fileSize,
'Content-Disposition' => HeaderUtils::makeDisposition(
HeaderUtils::DISPOSITION_INLINE,
$photo->baseName,
),
],
@rela589n
rela589n / exists.php
Created November 6, 2023 14:05
Doctrine select EXISTS query
public function hasEntities(): bool
{
$qb = $this->createYourQueryBuilder();
$qb->select((string)$qb->expr()->literal('1'))
->setMaxResults(1);
$result = $qb->getQuery()->getOneOrNullResult();
return null !== $result;
@rela589n
rela589n / CategoryRepository.php
Created December 7, 2023 09:05
postgresql dfs preorder tree traversal
public function findCategories(): array
{
// dfs preorder tree traversal
$sql = <<<'SQL'
WITH RECURSIVE preorder_categories_traversal
AS (SELECT category.id,
category.parent_id,
ARRAY [ROW (category.sort_order,category.id)] AS path
FROM categories category