我想扩展一些内置的框架类,但我有一些我不清楚的观点:
>我认为我应该将我的课程放在我的组件文件夹下,这是正确的地方吗?
>我应该像Subfolder_ClassName和ClassName.php这样的文件命名吗?
>我如何继承?默认包含路径不包括框架本身.我假设有一种内置的方法可以做到这一点,我没有改变包含路径/开始使用自动加载功能或简单硬编码包含在我的代码中.
对?
解决方法:
放置源文件
将它们置于/ protected / components下是一种自然的选择.如果您以后开发了可以跨项目重用的更多通用类,您可以考虑将它们放入单独的目录中.
命名和目录结构
这取决于您的应用的规模.如果你没有很多组件(比如说20以下),那么恕我直言你不需要任何目录结构,组件目录适用于所有组件.另一种实用方法是将业务组件放入一个目录,将HTML组件放入另一个目录(例如小部件).
包括父类
您的配置文件应该有这样的部分:
// autoloading model and component classes
'import'=>array(
'application.models.activerecord.*',
'application.models.forms.*',
'application.components.*',
'application.classes.*',
// etc
),
此部分实际上导致在您的应用程序实例上调用CModule::setImport
以注册可以自动加载的类.如果你想扩展这些类,那么你不需要做任何事情.
如果某些组件依赖于上面未导入的Yii类,则需要在声明类之前使用Yiibase::import
显式导入它们.例如:
Yii::import('zii.widgets.jui.CJuiSlider');
class MySlider extends CJuiSlider {
// class contents here
}
注册路径的别名
如果要为导入路径创建自己的别名(例如,在导入类时可以引用myapp.components的路径),可以使用Yiibase::setPathOfAlias
执行此操作.对此最好的位置是配置文件的最顶层:
<?php
Yii::setPathOfAlias('myapp.components','components/my/');
// This is the main Web application configuration. Any writable
// CWebApplication properties can be configured here.
return array(
// your whole app configuration is here, and you can now do this:
'import'=>array(
// ...other imports...
'myapp.components.*',
// ...other imports...
),
);
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。