Использование экземпляра Capsule:
После регистрации экземпляра Capsule, вы можете использовать его следующим образом:
Использование Query Builder:
$users = Capsule::table('users')->where('votes', '>', 100)->get();
Другие основные методы могут быть доступны непосредственно из Capsule так же, как и из фасада DB:
$results = Capsule::select('select * from users where id = ?', array(1));
Использование Schema Builder:
Capsule::schema()->create('users', function ($table) {
$table->increments('id');
$table->string('email')->unique();
$table->timestamps();
});
Используя Eloquent ORM:
class User extends Illuminate\Database\Eloquent\Model {}
$users = User::where('votes', '>', 1)->get();
Или используя стиль YanPHP:
use Illuminate\Database\Eloquent\Model;
use Illuminate\Support\Collection;
class User extends Model
{
protected $table = 'user';
protected $primaryKey = 'uid';
protected $keyType = 'int';
public function getById($id): Collection
{
return $this->where([$this->primaryKey => $id])->get();
}
public function getByCond($cond): Collection
{
return $this–>where($cond)->get();
}
public function updateByCond($cond, $update): bool
{
return $this->where($cond)->update($update);
}
public function deleteById($id)
{
return $this->where($id)->delete();
}
}
$UserModel = new User();
$UserModel->getById(1); // 获取user表中uid为1的用户数据信息
Для получения дополнительной документации по использованию различных средств базы данных, предоставляемых этой библиотекой, обратитесь к документации Laravel по базе данных.
После настройки соединения в файле конфигурации database.php, можно реализовать несколько экземпляров соединения с базой данных.
Далее мы рассмотрим, как выполнить переключение соединений.
Model/User.php
:
<?php
namespace App\Cgi\Model;
use Illuminate\Support\Collection;
use Yan\Core\Model;
class User extends Model
{
protected $table = 'user';
protected $connection = 'mysql1'; //здесь можно настроить использование "mysql1" для модели User
public function getById($id): Collection
{
//здесь можно изменить текущее соединение на "default"
$this->setConnection('default');
return $this->where([$this->primaryKey => $id])->get();
}
}
Мы можем использовать свойство $connection
в модели для настройки соединения по умолчанию.
Другой способ — использовать метод $this->setConnection($name)
для установки соединения.
Пример использования:
use Yan\Core\Session;
Session::set('a','b'); //установка значения сессии
$sessionVaue = Session::get('a'); //получение значения из сессии
Session::destroy(); //уничтожение всех сессий
В классе Session есть следующие методы:
/**
* @method static mixed get($key, $alt = null)
* @method static mixed set($key, $val)
* @method static null clear()
* @method static mixed getFlash($key, $alt = null)
* @method static null setFlash($key, $val)
* @method static null clearFlash()
* @method static mixed getFlashNext($key, $alt = null)
* @method static null setFlashNow($key, $val)
* @method static null clearFlashNow()
* @method static null keepFlash()
* @method boo null destroy()
*/
Вы можете настроить формат результата в вашем приложении в каталоге Compo/Result.php.
Вот пример класса Result:
namespace App\Cgi\Compo;
use Yan\Core\Compo\ResultInterface;
class Result implements ResultInterface
{
protected $code;
protected $message;
protected $data;
public function __construct(int $code, string $message, array $data = [])
{
$this->code = $code;
$this->message = $message;
$this->data = $data;
}
function getCode(): int
{
return $this->code;
}
function getMessage(): string
{
return $this->message;
}
/**
* Specify data which should be serialized to JSON
* @link http://php.net/manual/en/jsonserializable.jsonserialize.php
* @return mixed data which can be serialized by <b>json_encode</b>,
* which is a value of any type other than a resource.
* @since 5.4.0
*/
function jsonSerialize()
{
return ['code' => $this->code, 'message' => $this->message, 'data' => $this->data];
}
}
Метод jsonSerialize()
возвращает массив, который будет использоваться в качестве вывода результата.
YanPHP предоставляет глобальный код возврата, который можно изменить в System/Yan/Core/ReturnCode.php. ### Индексы FollowSymLinks
Разрешить переопределение: Нет
Требовать всё предоставлено
Индекс каталога: interface.php
</Directory>
</VirtualHost>
YanPHP написал соответствующие тестовые примеры. Можно провести модульное тестирование, запустив следующую команду. Также приветствуются пул реквесты для дополнения тестовых примеров.
phpunit --configuration phpunit.xml
MIT
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарии ( 0 )