Best practices. Как правильно делать. Имена
Переменные мы пишем в нижнем регистре:
$specialname = 10;
Константы в верхнем регистре:
echo SPECIALNAME;
Имена функций и классов пишем с маленькой буквы, но при этом имена, состоящие из двух или более слов пишем в верблюжьем стиле, то есть каждое новое слово начинается с большой буквы:
function myJob(){}
function specialAction(){}
function myBossVeryStupid(){}
Свежие вакансии по PHP тут : @rabotaphp
Переменные мы пишем в нижнем регистре:
$specialname = 10;
Константы в верхнем регистре:
echo SPECIALNAME;
Имена функций и классов пишем с маленькой буквы, но при этом имена, состоящие из двух или более слов пишем в верблюжьем стиле, то есть каждое новое слово начинается с большой буквы:
function myJob(){}
function specialAction(){}
function myBossVeryStupid(){}
Свежие вакансии по PHP тут : @rabotaphp
💩6👍4👎1
  Часто ли вам случается работать сверхурочно?
  Anonymous Poll
    39%
    Как по мне - часто.
      
    43%
    Да вроде бы нет, такое редко бывает.
      
    18%
    Не было такого, мы чётко придерживаемся графика рабочего времени.
      
    Best practices. Как правильно делать. Синтаксис-Массивы
Достаточно простой синтаксис, если мы имеем сложные массивы и много данных в массиве, то каждый элемент массива с новой строчки и отступом в +4 пробела от общей линии. При этом простые можно писать в одну строчку:
$array = array(10,5,2,'Стас');
$array = array(
'key1' => 'value1',
'key2' => 'value2',
'key3' => 'value3',
);
$array = array(
'key1' => array(
'key1' => 'value1',
'key2' => 'value2',
),
'key2' => 'value',
);
Свежие вакансии по PHP тут : @rabotaphp
Достаточно простой синтаксис, если мы имеем сложные массивы и много данных в массиве, то каждый элемент массива с новой строчки и отступом в +4 пробела от общей линии. При этом простые можно писать в одну строчку:
$array = array(10,5,2,'Стас');
$array = array(
'key1' => 'value1',
'key2' => 'value2',
'key3' => 'value3',
);
$array = array(
'key1' => array(
'key1' => 'value1',
'key2' => 'value2',
),
'key2' => 'value',
);
Свежие вакансии по PHP тут : @rabotaphp
💩6👍3
  Best practices. Что не надо делать?
Никогда ни при каких обстоятельствах не пользуйтесь сокращенной записью открытия блока PHP:
Свежие вакансии по PHP тут : @rabotaphp
Никогда ни при каких обстоятельствах не пользуйтесь сокращенной записью открытия блока PHP:
<? или <?=$var;?>всегда пишите полностью:
<?php echo $var; ?>В именах файлов и директорий никогда не используйте русский текст, пробел, точку, запятую и другие символы, можно использовать ТОЛЬКО латинские символы (английские символы) и нижнее подчёркивание.
Свежие вакансии по PHP тут : @rabotaphp
🤡11👍4💩4👎3
  Тип parent
Недавно осознал, что
  
  Недавно осознал, что
parent можно использовать как тип в любых местах. Вроде и логично, но как-то странно... Согласитесь, вы бы поёжились, если бы увидели что-то подобное на ревью.final class ParentOverdose extends ArrayObjecthttps://3v4l.org/TDXEa
{
public function __construct(
public parent $iAmParent,
) {
parent::__construct();
}
public function iReturnParent(): parent
{
return new parent();
}
public function iAcceptParent(parent $parent): void
{
}
}
3v4l.org
  
  Online PHP editor | output for TDXEa
  Run your php code online; get statistics, vld output and compare output from all versions.
  Как работаете?
  Anonymous Poll
    12%
    Фриланс
      
    25%
    В офисе
      
    38%
    На удаленке
      
    12%
    В гибридном формате
      
    3%
    За рубежом
      
    9%
    Другое (напишу в комментариях)
      
    Как изощрённо очистить свойство после чтения
Пишите в комментариях, пропустили ли бы вы такой код на ревью и почему. 🤓
  Пишите в комментариях, пропустили ли бы вы такой код на ревью и почему. 🤓
/**
* @return list<object>
*/
public function releaseEvents(): array
{
try {
return $this->events;
} finally {
$this->events = [];
}
}
Вакансия дня. Middle Backend|Full stack Developer
Полная занятость, удаленка
Зарплата: 150 - 200 т.р.
https://telegra.ph/Middle-BackendFull-stack-Developer-11-29
#remote #laravel #fullstack #php #fulltime
  
  Полная занятость, удаленка
Зарплата: 150 - 200 т.р.
https://telegra.ph/Middle-BackendFull-stack-Developer-11-29
#remote #laravel #fullstack #php #fulltime
Telegraph
  
  Middle Backend|Full stack Developer
  Вакансия: Middle Full stack Developer; Компания: Rush Analytics; Уровень зп: 150 000 - 200 000 ₽; Занятость: 5/2, полная занятость; Формат: удаленная работа; ✌️Мы один из крупнейших в РФ сервисов в сфере аналитики рекламы и SEO. Rush Analytics — это облачное…
  Какой вариант оптимальнее по памяти? (Какая переменная меньше?)
  Anonymous Quiz
    22%
    Первый ($toStringAsKeyMemory)
      
    78%
    Второй ($toHexAsKeyMemory)
      
    🤔11👎4👏2❤1
  uniqid()
Функция uniqid — простой и быстрый способ получить ±уникальную криптографически небезопасную строку.
Как она работает? Функция берёт секунды и микросекунды, прошедшие с начала эпохи Unix, и конкатенирует их в шестнадцатиричном представлении:
Первый необязательный параметр
Второй необязательный параметр
Не стоит относиться к этой функции слишком серьёзно, но в простейших случаях, например, при именовании каких-нибудь временных штук, она избавит вас от 🚲.
  Функция uniqid — простой и быстрый способ получить ±уникальную криптографически небезопасную строку.
Как она работает? Функция берёт секунды и микросекунды, прошедшие с начала эпохи Unix, и конкатенирует их в шестнадцатиричном представлении:
function uniqid(): stringТаким образом, выдаваемая строка имеет длину 13 символов (как посчитать длину самому). Если требуется меньше, то отрезать нужно с конца, так как наибольшей энтропией обладают последние знаки. Например, чтобы получить 8 символов, используем выражение
{
$time = gettimeofday();
return sprintf('%x%x', $time['sec'], $time['usec']);
}
substr(uniqid(), -8).Первый необязательный параметр
$prefix эквивалентен конкатенации $prefix.uniqid().Второй необязательный параметр
$more_entropy добавляет к результату псевдослучайное число, что снижает риск получить одинаковые значения в параллельных процессах. Такая строка содержит 23 символа и имеет вид 61e0e81a580527.28156047.Не стоит относиться к этой функции слишком серьёзно, но в простейших случаях, например, при именовании каких-нибудь временных штук, она избавит вас от 🚲.
Тип parent
Недавно осознал, что
  
  Недавно осознал, что
parent можно использовать как тип в любых местах. Вроде и логично, но как-то странно... Согласитесь, вы бы поёжились, если бы увидели что-то подобное на ревью.final class ParentOverdose extends ArrayObjecthttps://3v4l.org/TDXEa
{
public function __construct(
public parent $iAmParent,
) {
parent::__construct();
}
public function iReturnParent(): parent
{
return new parent();
}
public function iAcceptParent(parent $parent): void
{
}
}
3v4l.org
  
  Online PHP editor | output for TDXEa
  Run your php code online; get statistics, vld output and compare output from all versions.
❤1👍1
  array_keys(['p', 'h', 'p'], 'p', true)
  Anonymous Quiz
    18%
    ArgumentCountError: array_keys() expects exactly 1 argument, 3 given
      
    10%
    [0]
      
    20%
    [0, 2]
      
    3%
    [1, 3]
      
    31%
    [0, 1, 2]
      
    17%
    ArgumentCountError: array_keys() expects at most 2 arguments, 3 given
      
    👍5
  Если вы используете Deployer, то после успешного пятничного деплоя можете поиграть в Блэкджек из консоли.
./vendor/bin/dep blackjack👍4
  Пыхарь, используешь ли ты мутационное тестирование?
  Anonymous Poll
    74%
    Что?
      
    20%
    Слышал про такое, не пробовал.
      
    4%
    Использую только в pet-проектах.
      
    0%
    Пробовали на работе, не удалось внедрить. Сейчас в комментариях расскажу, почему.
      
    2%
    Успешно используем в рабочем проекте.
      
    Какой стиль именования используете для API на текущем проекте?
  Anonymous Poll
    65%
    camelCase
      
    21%
    snake_case
      
    6%
    PascalCase
      
    7%
    kebab-case
      
    Что такое Dependency Injection, и как он используется в PHP-приложениях?
Dependency Injection (DI) является паттерном проектирования, который используется в PHP-приложениях для управления зависимостями компонентов. Обычно зависимости передаются в класс через конструктор или методы инициализации. DI позволяет лучше управлять зависимостями, делая приложение более понятным и удобным для тестирования.
 #вопросы_с_собеседований
👍3🤓1
  #вопросы_с_собеседований
Что такое абстрактный класс и чем он отличается от интерфейса?
Абстрактный класс - это класс, который не может быть создан напрямую, он служит лишь в качестве базового для других классов. У него могут быть свойства и методы, которые могут быть переопределены в наследуемом классе. Абстрактные классы могут быть использованы для реализации шаблонов проектирования и их использование повышает повторное использование кода.
Интерфейс - это способ специфицировать, каким образом объекты должны взаимодействовать друг с другом. Интерфейс состоит только из методов и констант, которые не имеют тела. Интерфейсы могут использоваться в качестве связующего звена между компонентами, которые не имеют ничего общего кроме своей общей функциональности, а также в качестве одного из способов решения проблемы множественного наследования в PHP. 
Что такое абстрактный класс и чем он отличается от интерфейса?
Интерфейс - это способ специфицировать, каким образом объекты должны взаимодействовать друг с другом. Интерфейс состоит только из методов и констант, которые не имеют тела. Интерфейсы могут использоваться в качестве связующего звена между компонентами, которые не имеют ничего общего кроме своей общей функциональности, а также в качестве одного из способов решения проблемы множественного наследования в PHP.
👍4❤1
  