«phpClub» — архив тем ("тредов"), посвящённых изучению PHP и веб-технологий.
Аноним 2019/05/03 10:11:50  №1393386 1
Объясните пожалуйста.
1) Как реализовать конструктор в классе, который реализует паттерн TableDataGateway? В примере ОП использует PDO и конструктор выглядит так:
public function __construct(PDO $pdo) { ... }
а я использую mysqli могу ли я написать
public function __construct($conn) { ... }?
Так же не понятно, что мне писать в самом конструкторе? Подключение к базе данных или что?
2)С исключениями я тоже не понял. Могу ли я их не использовать, а писать просто
$conn = new mysqli ($hn, $un, $pw, $db);
if($conn->connect_error) die($conn->connect_error);
?
Аноним 2019/05/03 10:16:54  №1393389 2
>>1393386
Насчет первого вопроса я просто не понял зачем оп написал PDO в функции, что это за уточнение?
Ответы: >>1393398 >>1394575
Аноним 2019/05/03 10:34:25  №1393398 3
>>1393389
>PDO в функции, что это за уточнение
гугли type hinting и вообще научись гуглить простые места, ебать, тебе весь php.net пересказывать?
Аноним 2019/05/05 15:31:07  №1394575 4
>>1393636

Обычно есть несколько отдельных рабочих процессов PHP и оба запроса будут обрабатываться параллельно. Для получения id записи в MySQL надо использовать LAST_INSERT_ID() или одноименную функцию в PDO или mysqli, не надо делать кривой велосипед. В Postgres надо использовать сиквенсы (генераторы уникальных значений) для этого.

Описанные тобой способы неправильные и могут давать ошибки.

>>1393551

Подучи HTML/CSS/JS. Вряд ли ты сможешь осилить фронтенд-фреймворки не зная толком JS. Ну и мне кажется, тебе надо дальше проходить собеседования, есть шанс, что куда-нибудь возьмут.

Заодно можно поизучать теорию по БД, виды связей, нормализация, древовидные данные, индексы. оптимизация и тд.

>>1393514

Наследования исключения делается в простейшем варианте так:

class SomeException extends \Exception {}

Далее при желании можно добавлять поля и методы.

>>1393429

Я думаю, что если стоит задача сделать что-то более универсальное, то можно взять готовую библиотеку вроде Doctrine DBAL, где уже есть все нужные обертки.

>>1393389

Это тайп-хинт (контроль типов). Изучи его и используй по возможности везде.

>>1393036

Если твой скрипт может выполнить задачу за 5 минут, то да, можно так. Если не может, то надо запускать реже.
Ответы: >>1394600
Аноним 2019/05/05 16:15:40  №1394600 5
>>1394575
Просто сразу не мог додуматься до того, что в ларавеле после $var->save(), смогу взять из неё же id =)