При разработке CRM системы, довольно часто, основной сайт компании, лежит где-то рядом. И обычно использует другую базу данных. Распространенная задача - выдернуть какие-то данные из этой базы внутри CRM, используя модели. Как это сделать? Как использовать 2 или более подключения для ActiveRecord в Laravel

Этот пост о том как использовать несколько баз данных, а не про балансировку нагрузки или менеджер переключений между базами

Услуги тестирования программного обеспечения оказывают многие компании и отдельные специалисты, но лишь немногие из них способны предоставить клиенту полный комплекс мероприятий, и среди них — A1QA.

Для чего нужно тестирование ПО?

Когда речь идет о разработке приложения, интернет-магазина, многопользовательской игры или другого ПО, тестирование позволяет найти все дефекты — как явные, так и скрытые, которые могут привести и к ухудшению впечатления пользователей, и к утечке данных.

Yii2 позволяет легко создать механизм регистрации/входа/профиля через расширение yii2-user.

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

  • /user/registration/register Регистрация
  • /user/registration/resend Повторная отправка инструкций по регистрации
  • /user/registration/confirm Подтверждение пароля
  • /user/security/login Форма авторизации
  • /user/security/logout Выход(работает только через POST)
  • /user/recovery/request Востановление пароля
  • /user/settings/profile Настройки профиля
  • /user/settings/account Настройки аккаунта (email, username, password)
  • /user/settings/networks Привязанные социальные аккаунты
  • /user/profile/show Профиль пользователя (требует id)
  • /user/admin/index Менеджер пользователей

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

IDeal

В предыдущих постах мы разработали минимальную структуру фреймворка. В этой статье, наведем немного лоска - добавим простенькую тему с bootstrap'ом, меню и подробнее рассмотрим работу шаблонизатора и роутера (маршрутизатора сайта). 

Роутер

В прошлой статье мы создали роутер, который используя логику регулярных выражений распознает входящую sef ссылку и направляет на нужный контроллер и его метод.

Т.е. из такой строки

/user/profile/12

роутер делает массив

array('controller'=>'user','action'=>'profile', 'id'=>15)

Мы не стали в прошлый раз писать пример использования такого решения. Исправим ситуацию, но перед этим доработаем роутер.

Перенесем массив правил роутера в конфигурационный файл фреймворка. Этот массив будут заполнять разработчики, которые будут писать сайты на нашем фреймворке. Поэтому он должен быть максимально доступен.

...
'router' => array( 
	'([a-z0-9+_\-]+)/([a-z0-9+_\-]+)/([0-9]+)' => '$controller/$action/$id',
	'([a-z0-9+_\-]+)/([a-z0-9+_\-]+)' => '$controller/$action',
	'([a-z0-9+_\-]+)(/)?' => '$controller',
),
...

Кроме того вы можете видеть, что мы изменили правую часть массива.

В прошлой статье мы разобрали структуру фреймворка, но не его реализацию. Для того чтобы фреймворк начал функционаровать, нам потребуется его доработать. Для начала подключим файл конфигурацию. Мы обозначили файл, как config.php, но никак его не использовали.

По опыту разработки сразу оговорюсь, удобно использовать два файла конфигурации: первый для общих настроек - название сайта, адрес домена, время жизни куков, и второй для настроек подключения к БД. Это в первую очередь качается разработки на фреймворке. Так как для такой системы важно быстро развернуть ее на локальном компьютере и зачем перенести на сервер. При таком переносе, один из конфигов будет общим, а второй будет заполнен лишь единожды для каждого сервера. Поэтому определим два файла config.php и config.db.php

Структура этих файлов должна быть как можно проще. Идеальный вариант - ini файлы. Но для них нужно писать отдельные парсеры и они доступны из вне. Поэтому не будем изобретать велосипед, а сделаем простой php ассоциативный массив с парами ключ-значение.

Подкатегории

Все о разработке на фреймворке Yii