Rumah > Soal Jawab > teks badan
<?php
# model.php
namespace Model\TestModel;
class User
{
public function get()
{
return '爱因斯坦';
}
}
<?php
# run.php
use Model\TestModel\User;
require __DIR__ . '/model.php';
$user = new User();
echo $user->get();
Saya mahu melaksanakan penggunaan yang sama seperti Laravel Facades, load.php
Bagaimana cara menulisnya?
<?php
# run.php
require __DIR__ . '/load.php';
echo \User::get();
扔个三星炸死你2017-06-21 10:12:55
Anda perlu melaksanakan sendiri objek Fasad untuk memproksi semua panggilan kaedah kepada objek sebenar.
class UserFacade
{
private $user;
public function __constructor()
{
$this->user = new User();
}
public function __callStatic($name, $arguments)
{
return call_user_func_array(array($this, $name), $arguments);
}
}
$user UserFacade::get();
Sebarang panggilan kaedah statik ke UserFacade akan diproksikan kepada Pengguna. __callStatic
在有静态调用的时候触发,传入的参数$name是UserFacade::get
Nama kaedah untuk panggilan statik, $arguments ialah tatasusunan parameter.
Keterangan rasmi Laravel Facade ialah panggilan kelas yang ringkas dan mudah diingati pada asasnya Laravel menyediakan kelas Fasad untuk ciri-cirinya. Pada peringkat pembangunan perniagaan, saya tidak mengesyorkan kaedah reka bentuk panggilan kelas statik saya akan membuka jawatan berasingan untuk membincangkan perkara ini.
Rujukan
https://laravel.com/docs/5.4/…
http://php.net/manual/ms/lang...
http://php.net/manual/ms/func...