«phpClub» — архив тем ("тредов"), посвящённых изучению PHP и веб-технологий.
Аноним 2019/08/14 14:44:02  №1453317 1
Пилю лайфхак, посаны.

Зачастую бывают такие участки кода:
if (\file_exists($mediafile)) {
unlink($mediafile);
}

Можно писать их в одну строку гораздо короче:
\file_exists($mediafile) && unlink($mediafile);

Охуенная тема, примерно как с аннигиляцией скобочек с помощью return;
Аноним 2019/08/16 16:02:40  №1454601 2
>>1453317
@unlink($mediafile) еще проще
Ответы: >>1454823
Аноним 2019/08/17 04:30:35  №1454823 3
>>1454601
Он не про это вовсе
Аноним 2019/08/18 02:12:03  №1455476 4
>>1453656

Сделать каталог public корневым (DocumentRoot). Это самый надежный способ.

>>1453615

Увы, подробностей в посте мало. По поводу ошибок - они по идее должны писаться в какой-то лог, и надо там смотреть подробности. Также, ты можешь запустить тот же скрипт из консоли (командой вроде c:\php\php.exe d:\tmp\script.php) и там выведутся ошибки, если они есть.

Ну или напиши подробнее: какой скрипт, как ты его запускаешь, что выдается.

Также, в конфигах PHP лучше писать прямые слеши, c:/tmp/php/.

>>1453317

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

Ответы: >>1457586
Аноним 2019/08/21 11:14:49  №1457586 5
>>1455476
>Нет это плохо с точки зрения читабельности кода
Да ты охуел там, с точностью до наоборот.
Визуальный мусор от скобочек и большего числа строк гораздо сильнее влияет на читаемость и восприятие кода, чем одна строчка.

Вот записывать так сложные условия - уже не очень.
А строка типа
hui && pizda читается изи.
Ответы: >>1457600
Аноним 2019/08/21 11:16:06  №1457589 6
>>1453317
Правда, жалко, это не работает с конструкциями языка. Только с функциями.
Например, unset () так не сделаешь
Аноним 2019/08/21 11:21:48  №1457600 7
>>1457586
я другой анон, но тоже не понимаю зачем вы if в сточку пишите. Мне читабельности не добавляет. Зачем экономить? Может ты еще и туалетную бумагу бережешь и пакетик три раза завариваешь? Смотри какая экономия выходит
Ответы: >>1457769
Аноним 2019/08/21 14:42:35  №1457769 8
>>1457600
>Зачем экономить?
Затем, чтобы методы по 500 строк не были
Ответы: >>1457859
Аноним 2019/08/21 16:35:40  №1457859 9
>>1457769
>методы по 500 строк
Неправильно декомпозируешь скорее всего. Ещё и на читабельности начинаешь экономить.

Много коротких строк лучше чем мало длинных.
Аноним 2019/08/24 11:07:01  №1459944 10
>>1453317
Пилю еще пару лайфаков.

Лайфак №2. List.
[$year, $month, $day] = $this->getCurrentCalendarDate($_calendar_name);
Иногда функции надо вернуть несколько значений, но городить отдельный объект данных зачастую лень, долго и нецелесооразно.
Тогда просто в функции возвращаем массив с нужными значениями, а потом распаковываем его в переменные с помощью list.

Лайфак №3. Общепогромистский.
Когда надо сформировать таблицу из N строк и K столбцов, то, как правило, делают 2 вложенных цикла.

Но можно обойтись и одним циклом!
Зачастую это очень полезно, когда таблицы разных размеров и количество строк и столбцов заранее неизвестно.

$cols = 4;
$result = [];

foreach ($array as $index => $value) {
$row = (int)\floor($index / $cols);
$col = $index % $cols;
$result[$row][$col] = $value;
}

Этот код сформирует таблицу из 4 столбцов и нужного количества строк.
Охуенно простая формула, целочисленное деление (с округлением вниз) + остаток от деления всегда дают точные номер строки и столбца для данных.
Во многих случаях облегчает жизнь.
Ответы: >>1460051
Аноним 2019/08/24 13:52:32  №1460051 11
>>1459944
только что вышел из спячки
>[$year, $month, $day] = $this
Теперь можно без list($year, $month, $day) ?
Пили еще мне нравится.