Как правильно добавить Red Bean PHP в мой проект

Я не очень разбираюсь в структуре php-проектов, я нашел этот замечательный и простой учебник: https://arjunphp.com/creating-restful-api-slim-framework/ как создать простое приложение Slim Rest.

На самом деле это официальная структура проекта PHP SLIM, мой вопрос заключается в том, как лучше и правильнее добавить и использовать RedBean php ORM, я не хочу, чтобы на каждом маршруте было что-то вроде этого

use \RedBeanPHP\R as R;
R::setup( 'mysql:host=localhost;dbname=mydatabase', 'myusername', 'mypassword)

а потом

$book = R::load( 'book', $id );

А затем используйте ReadBean для моей базы данных. Мне интересно, как включить RedBeans в проект, а затем просто использовать его там, где мне это нужно. Это структура моего проекта https://github.com/iarjunphp/creating-restful-api-slim-framework3.

Примечание: я добавил красную фасоль через композитор, как описано здесь https://github.com/gabordemooij/redbean


person Sahbaz    schedule 24.09.2017    source источник
comment
Если вы используете приложение Slim-скелетон, то dependencies.php, вероятно, является хорошим местом для размещения кода настройки.   -  person Nima    schedule 24.09.2017
comment
Не могли бы вы написать пример кода, чтобы я мог понять, как мне это сделать?   -  person Sahbaz    schedule 24.09.2017
comment
Вы уже написали код! Первый блок кода, оператор use и вызов R::setup Просто переместите его в src/dependencies.php. Сталкивались ли вы с какими-либо проблемами при использовании вашего кода, о которых вы решили спросить на SO? Ваш код выглядит нормально.   -  person Nima    schedule 24.09.2017
comment
я обновил свой вопрос, как видите, я добавил все в dependencies.php, но в другом файле, например route.php, я не могу использовать красные бобы   -  person Sahbaz    schedule 24.09.2017
comment
Теперь вам просто нужно добавить use \RedBeanPHP\R as R; в ваш route.php. Только один раз вы можете использовать R::load внутри ваших обратных вызовов маршрута.   -  person Nima    schedule 24.09.2017
comment
Спасибо, это работает, я не знал, что мне нужно добавить использование \RedBeanPHP\R как R; как в зависимостях.php, так и в route.php. Итак, вы можете подтвердить, что это хорошая структура. (я отредактировал свой вопрос)   -  person Sahbaz    schedule 24.09.2017
comment
Теперь структура в порядке, но не рекомендуется включать решение в вопрос. Теперь ваш вопрос больше не вопрос.   -  person Nima    schedule 24.09.2017
comment
Я знаю, что вы должны ответить, чтобы я мог отметить его как решение. Спасибо еще раз!   -  person Sahbaz    schedule 24.09.2017


Ответы (2)


Вы можете поместить код для настройки ваших библиотек в любой файл, который будет включен в каждый запрос, поэтому, если вы используете slim/slim-skeleton, src/dependencies.php, вероятно, место, куда вы хотите добавить эти две строки:

use \RedBeanPHP\R as R;
R::setup( 'mysql:host=localhost;dbname=njux_db', 'root', '');

Затем вы можете использовать ReadBeans в своих обратных вызовах маршрута, но вам также необходимо добавить оператор use \RedBeanPHP\R as R; к вашему src/routes.php (или любому файлу, который будет использовать этот класс)

person Nima    schedule 24.09.2017