Maison > Questions et réponses > le corps du texte
<?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();
Je souhaite implémenter le même usage que Laravel Facades, load.php
Comment l'écrire ?
<?php
# run.php
require __DIR__ . '/load.php';
echo \User::get();
扔个三星炸死你2017-06-21 10:12:55
Vous devez implémenter vous-même un objet Facade pour proxyer tous les appels de méthode vers l'objet réel.
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();
Tout appel de méthode statique à UserFacade sera transmis par proxy à User. __callStatic
在有静态调用的时候触发,传入的参数$name是UserFacade::get
Le nom de la méthode pour les appels statiques, $arguments est le tableau de paramètres.
Description officielle de Laravel Facade est un appel de classe concis et facile à retenir Laravel fournit essentiellement la classe Facade pour ses fonctionnalités. Au niveau du développement commercial, je ne recommande pas la méthode de conception d'appel de classe statique. J'ouvrirai un article séparé pour en discuter.
Référence
https://laravel.com/docs/5.4/…
http://php.net/manual/en/lang...
http://php.net/manual/en/func...