Пара мелочей, как дополнение на тему, что можно сделать ещё:
По поводу конфига. Можно сделать чуть интереснее. Вместо хардкода значений в скрипте использовать переменные окружения. А сами значения вынести или в .env файл (под .gitignore) или на веб-сервер или на уровень ОС. Таким образом в коде получится просто getenv('DB_NAME');, getenv('DB_HOST'); и тд. Это чуть сложнее, чем в вашем варианте. С другой стороны код будет выглядеть полноценным, настраивать который в разных окружениях возможно разными способами. На мой взгляд это предпочтительнее, чем проверять или надеяться на существование файла с конфигом.
Если нужно просто проверить существование пользователя (или любой другой сущности) без необходимости получать саму запись, тогда select * будет лишним. Полей может быть сколько угодно в таблице и нет смысла получать их все для простой проверки. Достаточно ограничить выборку полем id или иным легковесным. Или просто указав select 1 from ... where ... Который вернёт только единицу, если запись существует.
Это утверждение о "смерти" может быть справедливо разве что для каких-то отдельных регионов в мире. С RoR в пределах РФ не часто сталкивался, в отличии от PHP. А вот на проектах далеко за пределами РФ напротив RoR попадался чаще и появляются такие диковинки, как проекты на Elixir, которых в российской среде ни разу не видел вживую.
Поддержу. Если мне самому презентации не нужны и обычно хватает базового домашнего пакета, то моему ребёнку для школы не редко приходится с ними работать. Приходится в таких случаях использовать офис онлайн от Microsoft.
Можно было бы достаточно просто уйти от решений Microsoft, если бы презентации были доступны в домашнем пакете или была бы простая и прозрачная возможность физ лицам покупать расширенный пакет, без посредников, со всякими формами обратной связи, рассчитанных на юр. лиц. Но её пока нет.
$privateProperty в данном случае будет содержать ссылку на приватное свойство, которое можем смотреть и изменять. Работает, к слову, быстрее рефлекции.
Читайте документацию. Там всё довольно просто и понятно описано
Если поместить данные в переменные окружения ОС или веб-сервера, тогда ничего дополнительно даже подключать не нужно. :)
Пара мелочей, как дополнение на тему, что можно сделать ещё:
По поводу конфига. Можно сделать чуть интереснее. Вместо хардкода значений в скрипте использовать переменные окружения. А сами значения вынести или в
.env
файл (под.gitignore
) или на веб-сервер или на уровень ОС. Таким образом в коде получится простоgetenv('DB_NAME');
,getenv('DB_HOST');
и тд. Это чуть сложнее, чем в вашем варианте. С другой стороны код будет выглядеть полноценным, настраивать который в разных окружениях возможно разными способами. На мой взгляд это предпочтительнее, чем проверять или надеяться на существование файла с конфигом.Если нужно просто проверить существование пользователя (или любой другой сущности) без необходимости получать саму запись, тогда
select *
будет лишним. Полей может быть сколько угодно в таблице и нет смысла получать их все для простой проверки. Достаточно ограничить выборку полемid
или иным легковесным. Или просто указавselect 1 from ... where ...
Который вернёт только единицу, если запись существует.Это утверждение о "смерти" может быть справедливо разве что для каких-то отдельных регионов в мире. С RoR в пределах РФ не часто сталкивался, в отличии от PHP. А вот на проектах далеко за пределами РФ напротив RoR попадался чаще и появляются такие диковинки, как проекты на Elixir, которых в российской среде ни разу не видел вживую.
Поддержу. Если мне самому презентации не нужны и обычно хватает базового домашнего пакета, то моему ребёнку для школы не редко приходится с ними работать. Приходится в таких случаях использовать офис онлайн от Microsoft.
Можно было бы достаточно просто уйти от решений Microsoft, если бы презентации были доступны в домашнем пакете или была бы простая и прозрачная возможность физ лицам покупать расширенный пакет, без посредников, со всякими формами обратной связи, рассчитанных на юр. лиц. Но её пока нет.
$privateProperty в данном случае будет содержать ссылку на приватное свойство, которое можем смотреть и изменять. Работает, к слову, быстрее рефлекции.