이건 정말 이름 변경 일의 단지 경우입니다 :
업데이트 모든 컨트롤러의 이름 Module.php
업데이트를 포함하여 모듈의 모든 클래스에있는 연구소 응용 프로그램에서 네임 스페이스와이 항목의 in config/module.config.php
보기 디렉토리에 view/application/index 등의 이름이 있으면/institute/index를보고 항목을 업데이트했는지 확인하십시오. module.config.php에서 동일한 경로로
연구소
업데이트는 모듈 키 아래에서 이전 버전의 application.config.php을 사용하는 modules.config.php 또는 경우 모듈의 배열의 이름에 응용 프로그램 디렉토리의
업데이트 이름입니다. 다음과 같이 내가 생각할 수있는 모든 그래서 기본적인 아이디어는 것
******** 편집
********해야 할 것입니다
:
새 모듈에 콘솔을 추가 (내가 젠드 MVC 콘솔을 사용했지만 MVC 콘솔이되지 않습니다 당신은 아마 https://github.com/zfcampus/zf-console를 사용한다)
module.config.php
<?php
namespace Rename;
use Zend\ServiceManager\Factory\InvokableFactory;
return [
'console' => array(
'router' => array(
'routes' => array(
'rename-module' => array(
'options' => array(
'route' => 'module rename <moduleNameOld> <moduleNameNew>',
'defaults' => array(
'controller' => Controller\IndexController::class,
'action' => 'rename'
)
)
)
)
)
),
'controllers' => [
'factories' => [
Controller\IndexController::class => InvokableFactory::class,
],
],
];
는 IndexController.php는
<?php
namespace Rename\Controller;
use Zend\Mvc\Controller\AbstractActionController;
use Zend\View\Model\ViewModel;
use Zend\Console\Request as ConsoleRequest;
use Zend\Mvc\Console\Controller\AbstractConsoleController;
class IndexController extends AbstractConsoleController
{
public function renameAction()
{
$request = $this->getRequest();
// Make sure that we are running in a console and the user has not tricked our
// application into running this action from a public web server.
if (!$request instanceof ConsoleRequest) {
throw new \RuntimeException('You can only use this action from a console!');
}
$moduleNameOld = $request->getParam('moduleNameOld');
$moduleNameNew = $request->getParam('moduleNameNew');
$module = file_get_contents(getcwd() . "/module/$moduleNameOld/src/Module.php", 'r+');
$updatedModule = str_replace($moduleNameOld, $moduleNameNew, $module);
file_put_contents(getcwd() . "/module/$moduleNameOld/src/Module.php", $updatedModule);
rename("module/$moduleNameOld", "module/$moduleNameNew");
}
}
이 난 단지 여기에 모듈의 이름을 변경하고 완료합니다 Module.php
에
을 네임 스페이스의 이름을 변경 한 적이
php public/index.php module rename Application Institute
처럼 실행할 수 있습니다 이 작업을 수행하면 Application 디렉토리의 모든 .php 파일을 재귀 적으로 찾고 대체 문자열 (실제로는 개선되어야 함)을 적용하는 루프를 반복해야합니다. 그런 다음 비슷한 논리로 위의 단계를 사용하여보기 및 응용 프로그램 수준 구성을 업데이트 할 수 있습니다.
작성한 코드는 꽤 나쁘고 안전하지 않지만 길을 따라 도울 수 있습니다.
달성하려는 목표는 무엇입니까?Application이라는 모듈이 있고 Institute로 이름을 바꾸시겠습니까? –
예 @PurpleHexagon. 나쁜 질문 때문에 질문을 할 수 없기 때문에이 게시물이나 다른 게시물을 편집 해 주시면 감사하겠습니다. – Seeker