recherche

Maison  >  Questions et réponses  >  le corps du texte

Comment implémenter des façades simples en php ?

<?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.phpComment l'écrire ?

<?php

# run.php

require __DIR__ . '/load.php';

echo \User::get();
阿神阿神2759 Il y a quelques jours796

répondre à tous(1)je répondrai

  • 扔个三星炸死你

    扔个三星炸死你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::getLe 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...

    répondre
    0
  • Annulerrépondre