SJohnson miniblogs

  • SJohnson
    0

    Kā varētu pārbaudīt, vai objektam pieder metode?

    public function storeMethod($name, $method)
         {
             if ($this->methods[$name] = $method)
                 {
                     return true;
                 }
             else
                 {
                     return false;
                 }
         }

    public function isStored($name)
         {
             if (isset($this->methods[$name]))
                 {
                     return true;
                 }
             else
                 {
                     return false;
                 }
          }

    public function getMethod($name)
        {
              if ($this->isStored($name))
                  {
                      return $this->methods[$name];
                  }
              else
                  {
                      return false;
                  }
         }


    Lādējot moduļus:

    $module = new $moduleInfo['class'](false);
    $this->storeMethod($moduleName, $module);
    return true;


    Tālāk, visas vajadzīgās moduļa funckijas var izsaukt ar $this->modules()->getMethod('ielādētā_moduļa_nosaukums')->funckija/metode/whatever(), un ja konkrētā metode eksistē, viss kārtībā, ja nē, fatāls.

    method_exists($this->modules()->getMethod('ielādētā_moduļa_nosaukums')->funckija/metode/whatever()) un function_exists($this->modules()->getMethod('ielādētā_moduļa_nosaukums')->funckija/metode/whatever()) nestrādā.

     

    var_dump($this->modules()->getMethod('ielādētā_moduļa_nosaukums')) izspļauj tikai definētos moduļa mainīgos, par funkcijām pīle netiek dota.

    • SJohnson
      0

      Otrais, varbūt ir veids, kā dinamiskāk nodefinēt to visu?
      Būtu diezgan cool, ja būtu veids, ka
      $this->modules()->getMethod('ielādētā_moduļa_nosaukums')
      varētu noīsināt uz
      $this->modules()->ielādētā_moduļa_nosaukums()

      @skakri @burvis @mad

Atpakaļ Uz augšu