ZEND友好的网址 - 几个用户

时间:2013-02-04 23:06:12

标签: zend-framework redirect friendly-url restful-url

如何创建可以使用Facebook等网址的应用程序?

  • app.dev/username
  • app.dev/username/pictures
  • app.dev/username/info
  • app.dev/username/posts/post_333
  • app.dev/username/posts/post_333/share

该应用程序具有其他具有不同URL的控制器

  • app.dev/events
  • app.dev/site/contact
  • app.dev/site/terms

当控制器不存在时,重定向到配置文件控制器

在application.ini

autoloaderNamespaces[] = "Plugins"
resources.frontController.plugins[] = "Plugins_Profiles"

在Bootstrapp.php中

protected function _initProfiles()
{
    $front = Zend_Controller_Front::getInstance();
    $front->registerPlugin(new Plugins_Profiles());    
}

/llrary/Plugin/Profiles.php

class Plugins_Profiles extends Zend_Controller_Plugin_Abstract
{

    public function preDispatch(Zend_Controller_Request_Abstract $request)
    {
        $dispatcher = Zend_Controller_Front::getInstance()->getDispatcher();

        if (!$dispatcher->isDispatchable($request)) {

            $url = $request->getControllerName();

            $request->setModuleName('default');
            $request->setControllerName('profiles');
            $request->setActionName('url');
            $request->setParam('url', $url);

            /** Prevents infinite loop if you make a mistake in the new request **/
            if ($dispatcher->isDispatchable($request)) {
                $request->setDispatched(false);
            }

        }

    }

}

但我无法发送变量 例如:app.dev/username/posts/post_333/share

知道我该怎么办?

PS。抱歉语法,我是巴西人,我会说葡萄牙语。

1 个答案:

答案 0 :(得分:0)

你应该检查Zend_Controller_Router_Route以获得一个干净的网址。以下是一些开始使用clean-url和zend route的链接。