1

我刚刚创建了一个名为“Default”的模块,应用程序似乎在此时停止工作。

这是我使用的脚本(它适用于除“默认”之外的任何其他名称):

#!/bin/bash

die () {
    echo >&2 "$@"
    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

1 回答 1

4

您不能使用 php 保留字作为命名空间(另请参阅php 手册)。您可以命名_Default左右Default_,但Default本身是不允许的。

于 2012-10-31T16:44:26.243 回答