2012-10-31 47 views
1

我剛剛創建了一個名爲「Default」的模塊,應用程序似乎在此時停止工作。Zend框架2:是否禁止模塊名稱「Default」?

這是我使用的腳本(它可以用於任何其他名稱其他然後「默認」):

#!/bin/bash 

die() { 
    echo >&2 "[email protected]" 
    exit 1 
} 

[ "$#" -eq 1 ] || die "1 argument required (module name), $# provided" 


cd module; 

#add check if module name already exists 

var="$1" 
OUTPUT=${var,,} 
echo $OUTPUT 

mkdir -pv $1/{config,src/$1/{Controller,Form,Model},view/$OUTPUT/$OUTPUT}; 

cd $1; 

echo "<?php 
// module/$1/Module.php 
namespace $1; 

class Module 
{ 
    public function getAutoloaderConfig() 
    { 
     return array(
      'Zend\Loader\ClassMapAutoloader' => array(
       __DIR__ . '/autoload_classmap.php', 
      ), 
      'Zend\Loader\StandardAutoloader' => array(
       'namespaces' => array(
        __NAMESPACE__ => __DIR__ . '/src/' . __NAMESPACE__, 
       ), 
      ), 
     ); 
    } 

    public function getConfig() 
    { 
     return include __DIR__ . '/config/module.config.php'; 
    } 
} 
" > Module.php; 

echo "<?php 
// module/$1/autoload_classmap.php: 
return array(); 
" > autoload_classmap.php; 


echo "<?php 
// module/$1/config/module.config.php: 
return array(
    'controllers' => array(
     'invokables' => array(
      '$1\Controller\\$1' => '$1\Controller\\$1Controller', 
     ), 
    ), 
    'view_manager' => array(
     'template_path_stack' => array(
      '$OUTPUT' => __DIR__ . '/../view', 
     ), 
    ), 
); 
" > config/module.config.php; 

echo "Updating application.config" 
sed -i '/modules..=>.array/,/),/ { /[^(,]$/ s//&,\n  '\'$1\''/ }' ../../config/application.config.php; 

echo "Success" 

回答

4

不能使用PHP的保留字作爲名字空間(另見php manual)。您可以使用名稱_DefaultDefault_左右,但Default本身是不允許的。