Zend\Code\Generator\ClassGenerator::addMethods PHP Method

addMethods() public method

public addMethods ( array $methods ) : self
$methods array
return self
    public function addMethods(array $methods)
    {
        foreach ($methods as $method) {
            if ($method instanceof MethodGenerator) {
                $this->addMethodFromGenerator($method);
            } else {
                if (is_string($method)) {
                    $this->addMethod($method);
                } elseif (is_array($method)) {
                    call_user_func_array([$this, 'addMethod'], $method);
                }
            }
        }
        return $this;
    }

Usage Example

 private function updateModuleConfig()
 {
     $dir = getcwd() . '/module/' . ucfirst($this->db) . '/config/';
     $filename = $dir . 'module.config.php';
     $moduleConfigArray = (include $filename);
     $keyCtrl = $this->getModuleName() . '\\' . $this->subDir . '\\' . $this->getClassName();
     if (!array_key_exists($keyCtrl, $moduleConfigArray['controllers']['invokables'])) {
         $moduleConfigArray['controllers']['invokables'][$keyCtrl] = $this->getModuleName() . '\\' . $this->subDir . '\\' . $this->getClassName();
     }
     $keyRoute = $this->tableName;
     if (!array_key_exists($keyRoute, $moduleConfigArray['router']['routes'])) {
         $moduleConfigArray['router']['routes'][$keyRoute] = array('type' => 'segment', 'options' => array('route' => '/' . $keyRoute . '[/:id]', 'defaults' => array('controller' => $keyCtrl)));
     }
     $newContent = '<? return ' . var_export($moduleConfigArray, true) . ';';
     // dir doesn't exist, make it
     if (!is_dir($dir)) {
         mkdir($dir);
         // ** Generate Module.php class ** //
         // Definitions
         $classGenerator = new ClassGenerator();
         $classGenerator->setName('Module');
         $classGenerator->setNamespaceName(ucfirst($this->db));
         // Methods
         $classGenerator->addMethods(array(new MethodGenerator('getConfig', [], MethodGenerator::FLAG_PUBLIC, "return include __DIR__ . '/config/module.config.php';"), new MethodGenerator('getAutoloaderConfig', [], MethodGenerator::FLAG_PUBLIC, "return array(\r                            'Zend\\Loader\\StandardAutoloader' => array(\r                                'namespaces' => array(\r                                    __NAMESPACE__ => __DIR__ . '/src/' . __NAMESPACE__,\r                                ),\r                            ),\r                        );")));
         $this->fileCreate(getcwd() . '/module/' . ucfirst($this->db) . '/Module.php', $classGenerator);
         // ** Generate Module.php class ** //
     }
     file_put_contents($filename, $newContent);
 }
All Usage Examples Of Zend\Code\Generator\ClassGenerator::addMethods