Skip to content

Instantly share code, notes, and snippets.

Тестовое задание для PHP разработчика

Предисловие

Уважаемые соискатели, уважайте свое время и время программиста, проверяющего вашу работу. Если так получилось, что вы не можете (не успеваете\не хотите) выполнить задание до конца - сообщите пожалуйста об этом HR. Проверьте пожалуйста работоспособность вашего проекта (чек-лист проверки).

Подойдите пожалуйста к исполнению задания максимально усердно. Продумайте архитектуру проекта, используйте "плюшки" фреймворка, которые сделают ваш код качественным. Максимально хорошо организуйте код. Если можно что то вынести в сервисный слой - выносите, если можно где то использовать eloquent scopes - используйте (думаю, что вы поняли. Знаете как показать свои знания - показывайте). Напишите свой код так, чтобы не стыдно было показать другим.

Не забывайте, что мне необходимо по этому, крайне небольшому, заданию оценить ваши знания. Я хочу увидеть production ready сервис, который вы можете запустить в работу прямо сейчас.

А далее у нас та

@farik92
farik92 / backtrace.php
Created April 28, 2025 19:03 — forked from antongorodezkiy/backtrace.php
debug_backtrace() with files and lines only
<?php
function backtrace() {
$keys = array('file','line');
$target = array();
foreach(debug_backtrace() as $key => $s) {
/*if ($key == 0) {
continue;
}*/
@farik92
farik92 / ubuntu-dev-tools.txt
Created February 12, 2025 06:45 — forked from motaharinia/ubuntu-dev-tools.txt
ubuntu dev-tools
-install java open-jdk 8 and 11 (https://tecadmin.net/install-oracle-java-8-ubuntu-via-ppa/):
1.install open-jdk 8:
sudo apt update
sudo apt install openjdk-8-jdk openjdk-8-doc
2.install open-jdk 11 and check if java home variable is defined before:
sudo apt-get install openjdk-11-jdk openjdk-11-doc
sudo echo $JAVA_HOME
3.install open-jdk 17 and check if java home variable is defined before:
sudo apt-get install openjdk-17-jdk openjdk-17-doc
sudo echo $JAVA_HOME
@farik92
farik92 / readme.md
Created January 20, 2025 06:11 — forked from sergey-glushakov/readme.md
Установка PhpStorm в Linux Mint на примере версии 2021.1.4

Установка PhpStorm в Linux Mint на примере версии 2021.1.4

  1. Скачиваем PHPStorm c оф. сайта: https://download.jetbrains.com/webide/PhpStorm-2021.1.4.tar.gz

  2. Переходим в папку со скачанным архивом ```cd ~/Загрузки/

  3. Находясь в папке Загрузки распаковываем содержимое архива в папку /opt/: sudo tar xf ./PhpStorm-2021.1.4.tar.gz -C /opt/

#Reference: https://www.smarthomebeginner.com/traefik-reverse-proxy-tutorial-for-docker
# Setup bitwarden database
# docker exec -it mariadb mysql -uroot -p$MYSQL_ROOT_PASSWORD
# CREATE DATABASE bitwarden CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci;
# GRANT ALL PRIVILEGES ON bitwarden.* TO 'bitwarden'@'bitwarden.traefik_proxy' IDENTIFIED BY '<password>';
# FLUSH PRIVILEGES;
# exit
@farik92
farik92 / pretty_print.php
Created November 25, 2024 11:36 — forked from tokudu/pretty_print.php
A function to pretty print a associative array in PHP
<?php
function debug($var = false) {
echo "\n<pre style=\"background: #FFFF99; font-size: 10px;\">\n";
$var = print_r($var, true);
echo $var . "\n</pre>\n";
}
?>
<?php
function getOptimalPurchasePlan(array $priceList, int $need): array {
if ($need <= 0) {
return [];
}
usort($priceList, fn($a, $b) => ($a['price'] / $a['pack']) <=> ($b['price'] / $b['pack']));
$dp = array_fill(0, $need + 1, PHP_INT_MAX);
@farik92
farik92 / curl.md
Created September 23, 2024 15:27 — forked from subfuzion/curl.md
curl POST examples

Common Options

-#, --progress-bar Make curl display a simple progress bar instead of the more informational standard meter.

-b, --cookie <name=data> Supply cookie with request. If no =, then specifies the cookie file to use (see -c).

-c, --cookie-jar <file name> File to save response cookies to.

<?php
$dsn = '';
$username = '';
$password = '';
try {
$pdo = new PDO($dsn, $username, $password);
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
@farik92
farik92 / gist:98e25c5d638317fe85a52ff5382a6139
Created August 17, 2024 20:40 — forked from themavix/gist:0e0ede25b0e49129cd39
Стилизация селекта
$(document).ready(function(){
var f_select = function(){
var $select = $('.f-select');
var selectId = 'f-select_' + Math.floor( Math.random( ) * (100001) );
$select.addClass(selectId);
$select.css('display', 'none');
$select.after('<div class="f-custom-select" id="' + selectId + '"><div class="f-custom-select__title"><span></span></div></div><div class="f-custom-select__hidden" data-select-class="' + selectId + '"></div>');
var $f_select = $('#' + selectId);