1. Go to this page and download the library: Download lizhichao/one library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
namespace App\Model;
use One\Database\Mysql\Model;
// There is no need to specify the primary key in the model, the framework will cache the database structure
// Automatically match the primary key, automatically filter the fields in the non-table structure
class User extends Model
{
// Define the table name corresponding to the model
CONST TABLE = 'users';
// define relationship
public function articles()
{
return $this->hasMany('id',Article::class,'user_id');
}
// define event
// Whether to enable automatic caching
// ……
}
// Query a record
$user = User::find(1);
// Related query
$user_list = User::whereIn('id',[1,2,3])->with('articles')->findAll()->toArray();
// update
$r = $user->update(['name' => 'aaa']);
// or
$r = user::where('id',1)->update(['name' => 'aaa']);
// $r To influence the number of records
// Set cache without expiration time
Cache::set('ccc',1);
// Set the cache to expire in 1 minute
Cache::set('ccc',1,60);
Cache::get('ccc');
// or cache ccc expires 10s under tag1
Cache::get('ccc',function (){
return 'info';
},10,['tag1']);
// Refresh all caches under tag1
Cache::flush('tag1');
class Abc
{
private $a;
public function __construct($a = 0)
{
$this->a = $a;
}
public function add($a, $b)
{
return $this->a + $a + $b;
}
public function time()
{
return date('Y-m-d H:i:s');
}
public function setA($a)
{
$this->a = $a;
return $this;
}
}
// Add Abc to rpc service
RpcServer::add(Abc::class);
// If you don't want to add all the methods under Abc to the rpc service, you can also specify the addition.
// Unspecified methods cannot be called by the client.
// RpcServer::add(Abc::class,'add');
// Add in groups
//RpcServer::group([
// // The middleware can do permission verification, data encryption and decryption, etc.
// 'middle' => [
// TestMiddle::class . '@aa'
// ],
// // Cache If set, when called with the same parameters, the cache information will be returned and will not be called. Unit: seconds
// 'cache' => 10
//], function () {
// RpcServer::add(Abc::class);
// RpcServer::add(User::class);
//});
class ClientAbc extends RpcClientHttp {
// rpc server address
protected $_rpc_server = 'http://127.0.0.1:8082/';
// The remote class is not set and the default is the current class name
protected $_remote_class_name = 'Abc';
}
$abc = new ClientAbc(5);
// $res === 10
$res = $abc->add(2,3);
// Chain call $res === 105
$res = $abc->setA(100)->add(2,3);
// If the User of the above model is added to rpc
// RpcServer::add(User::class);
// The following operation results are the same as above
// $user_list = User::whereIn('id',[1,2,3])->with('articles')->findAll()->toArray();
class ClientAbc extends RpcClientTcp {
// rpc server address
protected $_rpc_server = 'tcp://127.0.0.1:8083/';
// The remote class is not set and the default is the current class name
protected $_remote_class_name = 'Abc';
}
Loading please wait ...
Before you can download the PHP files, the dependencies should be resolved. This can take some minutes. Please be patient.