<?PHP
require_once __DIR__ . '/vendor/autoload.php';
use RedBeanPHP\R;
define('_FROZEN_DATABASE_',false);
define('_LOG_ERRORS_',false);
define('_PERSISTENCE_DATABASE_','rb_test_database');
define('_PERSISTENCE_CONNECTION_ENDPOINT_','localhost');
define('_PERSISTENCE_CONNECTION_CREDENTIALS_',['userName'=>'root','password'=>null]);
define('_PERSISTENCE_DSN_','mysql:dbname='._PERSISTENCE_DATABASE_.';host='._PERSISTENCE_CONNECTION_ENDPOINT_);
R::setup(_PERSISTENCE_DSN_,_PERSISTENCE_CONNECTION_CREDENTIALS_['userName'],_PERSISTENCE_CONNECTION_CREDENTIALS_['password'],_FROZEN_DATABASE_);
class User extends \RedBeanPHP\SimpleModel {
public $id;
public $userName;
public function someMethodNeededFromModel() {
return 'I am working';
}
}
class UserRepo {
/**
* @param $id
* @return \RedBeanPHP\OODBBean|User
*/
public function findOrGetNew($id) {
return R::findOneOrDispense('user', $id);
}
public function save($bean) {
return R::store($bean);
}
}
$userRepo = new UserRepo();
$user = $userRepo->findOrGetNew(1);
$user->userName = 'Test User';
$id = $userRepo->save($user);
echo 'userId of saved user: '.$id.' - some other method that returns some string: '.$user->someMethodNeededFromModel();