Viewing File: /opt/alt/tests/alt-php83-pecl-yaf_3.3.6-1.el8/tests/issue513.phpt

--TEST--
Check for Custom MVC name
--SKIPIF--
<?php if (!extension_loaded("yaf")) print "skip"; ?>
--INI--
yaf.use_spl_autoload=0
yaf.use_namespace=0
--FILE--
<?php
require "build.inc";
startup();

$config = array(
	"application" => array(
		"directory" => APPLICATION_PATH,
        "bootstrap" => APPLICATION_PATH . "/cboot.php",
        "dispatcher" => array (
           "catchException" => true,
        ), 
        "library" => array(
        ),
	),
);

file_put_contents(APPLICATION_PATH . "/controllers/Error.php", <<<PHP
<?php
   class ErrorController extends Yaf_Controller_Abstract {
         public function errorAction(\$exception) {
              var_dump(\$exception->getMessage());
              return FALSE;
         }
   }
PHP
);

file_put_contents(APPLICATION_PATH . "/cboot.php", <<<PHP
<?php
   class Bootstrap extends Yaf_Bootstrap_Abstract {
        public function _initPlugin(Yaf_Dispatcher \$dispatcher) {
            \$dispatcher->registerPlugin(new TestPlugin());
        }
   }
PHP
);

file_put_contents(APPLICATION_PATH . "/plugins/Test.php", <<<PHP
<?php
   class TestPlugin extends Yaf_Plugin_Abstract {
        public function routerShutdown(Yaf_Request_Abstract \$request, Yaf_Response_Abstract \$response) {
			\$request->setModuleName("CUSTOM", false);
			\$request->setControllerName("INDEX", false);
			\$request->setActionName("CamelName", false);
			return;
        }
        public function dispatchLoopStartup(Yaf_Request_Abstract \$request, Yaf_Response_Abstract \$response) {
        }
        public function preDispatch(Yaf_Request_Abstract \$request, Yaf_Response_Abstract \$response) {
        }
        public function postDispatch(Yaf_Request_Abstract \$request, Yaf_Response_Abstract \$response) {
			var_dump(\$request->getControllerName());
			var_dump(\$request->getActionName());
        }
   }
PHP
);

$value = NULL;

@mkdir(APPLICATION_PATH . "/modules");
@mkdir(APPLICATION_PATH . "/modules/CUSTOM");
@mkdir(APPLICATION_PATH . "/modules/CUSTOM/controllers");
@mkdir(APPLICATION_PATH . "/modules/CUSTOM/views");
/* Controller name here should be lowercase anyway? */
@mkdir(APPLICATION_PATH . "/modules/CUSTOM/views/index");
file_put_contents(APPLICATION_PATH . "/modules/CUSTOM/controllers/INDEX.php", <<<PHP
<?php
   class INDEXController extends Yaf_Controller_Abstract {
         public function CamelNameAction() {
         }
   }
PHP
);

file_put_contents(APPLICATION_PATH . "/modules/CUSTOM/views/index/CamelName.phtml", "<?php var_dump('ok'); ?>");

$app = new Yaf_Application($config);
$app->bootstrap()->run();

?>
--CLEAN--
<?php
require "build.inc"; 
shutdown();
?>
--EXPECTF--
string(5) "INDEX"
string(9) "CamelName"
string(2) "ok"
Back to Directory File Manager
<