【发布时间】:2012-05-16 06:31:59
【问题描述】:
我是 kohana 的新手,也是 php 的新手。
我有一个简单的 URI 编码函数,它模仿 JS %100 的函数,与 PHP 的不同。
我想在某些类中使用这个函数,但我不想在每个类中都定义它。
那么,如何定义一个全局函数在所有地方都可以使用呢?
(我不想为 3 行代码函数创建一个类)
谢谢!
【问题讨论】:
我是 kohana 的新手,也是 php 的新手。
我有一个简单的 URI 编码函数,它模仿 JS %100 的函数,与 PHP 的不同。
我想在某些类中使用这个函数,但我不想在每个类中都定义它。
那么,如何定义一个全局函数在所有地方都可以使用呢?
(我不想为 3 行代码函数创建一个类)
谢谢!
【问题讨论】:
重载核心 URL 辅助类。将您的函数添加为静态方法。
【讨论】:
压倒您避免良好的面向对象原则的愿望。创建一个新类并创建一个静态公共函数。不要创建糟糕的旧全局函数。
【讨论】:
<?php
function yourFunction( ) {
return 'your result';
}
那怎么样?只需将其写入始终包含在内的文件中即可。不要仅仅为了认为你在做 OO 而去创建一个静态类,没有意义。
【讨论】:
尽管我建议通过在APPPATH/classes/url.php 创建一个新文件来扩展核心 URL 帮助程序类(假设您使用的是 Kohana 3.x),但您可以将您的全局函数放入您的引导程序 (APPPATH/bootstrap.php):
class URL extends Kohana_URL {
public static function encode($uri)
{
// ...
}
}
这 3 行代码几乎总是值得的。 Kohana 旨在让您覆盖其核心类。您的代码将更易于维护。
【讨论】: