对于php–Kohana3.2–获取引荐来源URI感兴趣的读者,本文将提供您所需要的所有信息,我们将详细讲解php获取来源地址,并且为您提供关于HMVCinKohana:请求工厂模式、Kohana-P
对于php – Kohana 3.2 – 获取引荐来源URI感兴趣的读者,本文将提供您所需要的所有信息,我们将详细讲解php获取来源地址,并且为您提供关于HMVC in Kohana:请求工厂模式、Kohana - PHP5框架 - 我看过的开源框架、Kohana 3.1:从另一个内部调用控制器;不返回数据、Kohana 3.x auth的宝贵知识。
本文目录一览:- php – Kohana 3.2 – 获取引荐来源URI(php获取来源地址)
- HMVC in Kohana:请求工厂模式
- Kohana - PHP5框架 - 我看过的开源框架
- Kohana 3.1:从另一个内部调用控制器;不返回数据
- Kohana 3.x auth
php – Kohana 3.2 – 获取引荐来源URI(php获取来源地址)
我正在尝试使用以下代码获取Kohana 3.2中的referrer URI:
$referrer = $this->request->referrer();
var_dump($referrer);
但是该函数返回NULL,我希望它返回我离开的页面到达这个.
是它应该如何工作……如果是这样,我错过了什么或做错了什么?
这是在Controller中运行的.
文档:http://kohanaframework.org/3.2/guide/api/Request#referrer
解决方法:
我遇到的问题是我的Kohana系统设置的原因.基本上我在我的系统中间有一个routeHandler来控制用户所采用的路由.在该脚本中生成一个新请求然后执行.
发生的事情是在创建新请求对象时没有添加引用者uri.我添加了以下代码,现在我可以在路由过程结束时从控制器获取引用uri.
$referrer = $this->request->referrer();
$request = new Request($uri);
$request->referrer($referrer);
echo $request->execute()
->send_headers()
->body();
或者,如atma所建议的更清洁的更原生的解决方案如下:
Request::initial()->referrer()
HMVC in Kohana:请求工厂模式
一个最佳的分层结构:
降低项目之间的依赖性
鼓励重用代码,组件和模块
增加可扩展性,减轻可维护性
在客户端使用HMVC分层结构的用途
模块化界面元素或部件
应用和菜单控制
服务器交互
可重复使用的应用流
HMVC基础
一个很容易理解HMVC的方法是就像AJAX没有额外的服务器调用。例如,你用AJAX的动作显示一个用户列表。你可以在其他控制器重用那个动作,而不是重复方法。
Request Factory
可以通过Kohana的Request::factory()的方法实现HMVC。使用Request factory你可以在认识时间请求过程中随意充分执行一个Kohana request。
Request::factory()方法接受RouteURI作为参数,并可以结合Kohana强大的路由功能你创建的任意应用程序。
在控制器中使用Request Factory
下面的例子为你展示如何在其他控制器使内部使用Request Factory。
虽然不能全部突出HMVC的强大功能,它可以为你展示如何将分开的两个请求布局到一个层。
class Controller_Static extends Controller{
/**
* The following action loads page.
* A sub request is called to load a dynamic menu
*/
public function action_page(){
$page_name = Request::instance()->param(''page'');
$this->request->response = View::factory(''page/''.$page_name)->bind(''menu'', $menu);
$menu = Request::factory(''static/menu'')->execute()response;
}
public function action_menu(){
$page_name = Request::instance()->param(''page'');
$this->request->response = View::factory(''page/menu'')->bind(''links'', $links);
$links = Kohana::config(''menu'')->$page_name;
}
}
在一个视图中使用Request Factory
另一个使用Request Factory的有效方式是从一个视图中调用请求。在下面的例子里我们通过从视图中调用动态菜单和动态页脚代替控制器。
<h1>< ?php echo $page_title ?></h1> < ?php echo Request::factory(''page/menu'')->execute()->response ?> <div id="container">
< ?php echo $content ?>
</div> < ?php echo Request::factory(''page/menu'')->execute()->response ?>
使用Request Factory以Kohana为基础整合其他开源项目
如果你分析Kohana 的bootstrap.php文件,你会注意到没有神奇发生直到一个Request类被创建Request::instance()方法被调用。
Request::instance()和Request::factory的唯一不同点是instance()方法创建仅仅是创建一个单独的指导主请求和输出必要的响应头文件的Request类。
一个很重要的事情必须指出,但也不绝对创建一个单独的Request实例或者输出任何headers.一个Kohana的请求在Kohana初始化时被全 部执行需要使用Request::factory()。使用Kohana-for-Wordpres插件kohana如何被整合到Wordpress
Kohana - PHP5框架 - 我看过的开源框架
最近在学习Kohana这个框架,发现里面的结构层次很齐全完整。但从另一方面来说,更像是一个地地道道的面向对象的开发框架,如果根据《设计模式解析》一书中介绍的理念重构,绝对是一个了不起的框架 。以下是一些个人的分析结果,仅供参考。
框架代码静态分析:
1、继承层次过多,很多为没必要的接口继承
2、类的内部声明和实现混乱,静态与构造类混乱 (静态方法、类属性、构造函数、类方法)
3、内核抽象类与框架核心类混乱,即作为最抽象层的Kohana 与外部有交错,包的界定不明确(内外交错继承)
4、父类依赖于子类,不符合依赖倒置原则
5、感觉是标准面向对象的做法
6、代码行内注释很多
7、假抽象,即最高层的抽象类,其实都是static的方法,毫无抽象可言
8、继承泛滥,static泛滥
9、$data = base64_decode($data, TRUE);
10、对数组更简单的转换写法:
if (!is_array($arr)) {
$arr = array($arr);
}
$arr = (array)$arr;
11、strtr strtr — 转换指定字符 相当于str_replace
12、register_shutdown_function(PHP 4, PHP 5) 注册脚本退出时的一些回调函数,特别适合于日记的最后写入,但是在die()的情况下会终止,exit()可以,但在回调函数里面的exit()不行
13、有代码示例,和使用说明,示例代码首页空一段
14、生成TOKEN更好的方法:$token = sha1(uniqid(NULL, TRUE)); string(40) "5e8000b3f16ba703c7cfc367571a90ec1bdfa295" //sha1(PHP 4 >= 4.3.0, PHP 5) 返回值是一个 40 字符长度的十六进制数字。
15、一堆没用的代码在./kohana/system/classes
最后,附图一张:
Kohana 3.1:从另一个内部调用控制器;不返回数据
如何解决Kohana 3.1:从另一个内部调用控制器;不返回数据
| 我只是似乎无法解决这个问题...我有几个问题,请忍受! :) 首先,设置: 我有一个扩展Controller_Template的控制器(controllerA)。在controllerA的模板视图中,我具有jQuery选项卡,这些AJAX加载了另一个控制器(controllerB)。然后,我有一个“核心”控制器,其中包含我在其他控制器中重复使用的功能(嗯,无论如何我还是会喜欢的)。 现在我的问题是: 1.可以像上面提到的那样加载jQuery选项卡内容(最佳实践):<li><a href=\\"/controller\\">test</a></li>
? 2.在JS和PHP中,我一直有一个\\''core \\''文件,用于可重复使用的代码。除了这种方式,还有更好的选择吗?我应该代替我的核心扩展Controller,然后再扩展所有控制器吗?我担心的是开销。 3.最后,如果我用Request::factory()->execute()->response()
调用内核,除非我使用die($data)
而不是return $data
,否则我什么也得不到。但是,如果我从内核的另一个内部调用该函数,它将无法正常工作。如何使它全面运作? 与往常一样感谢您的帮助! 布赖恩
解决方法
Request::factory()->execute()->response()
返回字符串,所以至少需要 echo
。而且不要忘记设置 $ this-> request-> Response in ajax方法。
Kohana 3.x auth
如何解决Kohana 3.x auth
kohana 3.x的官方文档在哪里?现在无论何时我去那里都是空白页面http://kohanaframework.org/3.0/guide/auth 我正在寻找优质的Kohana 3.x身份验证文档,如果有人对此有所了解,请与我分享。 提前致谢!解决方法
关于php – Kohana 3.2 – 获取引荐来源URI和php获取来源地址的问题就给大家分享到这里,感谢你花时间阅读本站内容,更多关于HMVC in Kohana:请求工厂模式、Kohana - PHP5框架 - 我看过的开源框架、Kohana 3.1:从另一个内部调用控制器;不返回数据、Kohana 3.x auth等相关知识的信息别忘了在本站进行查找喔。
本文标签: