Андрей Аюпов: Чтобы именно "перейти", можно разве что написать namespace ...; Но внутри класса этого сделать нельзя.
Каждый класс нужно импортировать по отдельности.
Андрей Аюпов: Ок, я проигнорировал часть вопроса :)
Тут нет "перехода" в другое пространства имён. Этой командой вы просто импортируете данный класс, чтобы использовать его имя локально.
То есть, можно обращаться к следующим классам без указания пространства имён:
те, что находятся в одном с текущим;
те, что перечислены в use (можно несколько аналогичным образом);
Дальше могу предложить разве что целиком читать по ним доку :)
Максим Тимофеев: 1. Кхм. То есть оставлять потенциальную уязвимость только из-за того, что сегодня ей никто не хочет воспользоваться? :) Если вы считаете, что в вашем проекте база пользователей никому не нужна, то можно хранить её дамп в корне, в файле dump.sql, открытом для чтения снаружи? :)
2. Да как угодно.
3. См. два ответа выше
4. Принципиально не решит проблему. Можно это делать часто, если возникнет желание :)
То есть понятно, что так в целом можно сделать, с другой стороны — если товары быстро раскупают, то почему бы не отдать предпочтение тем, кто быстрее заплатит?
Некстати, не решает главной проблемы — вполне вероятно, что ТС не знал, что для этого нужны блокировки.
Не за что. Но вообще, прочитайте где-нибудь о том, что такое инкапсуляция. Хранить состояние и какие-то внутренние данные в глобальной области видимости — дурная практика. Стоит сделать хотя бы так:
А! После имени пользователя через подчёркивание просто случайная цифра? При этом в самом имени цифры запрещены? Если нет, то лучше /^.*users\.\$(\S+)_[1-9]\s.*$/
С одной стороны, это неплохо: пользователю не дадут купить что-либо, если это хочет купить другой человек.
Но что делать, если кто-то об этом узнает, и будет собирать в корзину весь магазин? Вводить капчу на каждой странице — не очень здорово.
4eloBek: Во-первых, можно выделять сзади вперёд: лучше как-нибудь так https://jsfiddle.net/e2wkxmfv/4/
Во-вторых, остаётся ошибка, если выделение начато в дочернем элементе. На этот случай стоит всё же рекурсивно идти по родителям.
index0h: Да. Действительно, называть роут контроллером некорректно, прошу прощения :)
Я это и имел в виду, что передавать нужно и request, и attributes (или хранить их в объекте, не суть).
Каждый класс нужно импортировать по отдельности.