新手求解:Zend框架下,如何创建新Class的问题

yeinuse 2013-04-25 03:41:39
近期在帮朋友公司改个PHP网站的后台,PHP我是半路上手,之前没弄过。
大致看了一下,网站的结构大致如下:
--------------------------------------------
/application/
./admin/controllers/
./admin/views/
/library/
./App/
./App/Db.php
./App/Model.php
./App/Db/
./App/Model/

./Zend/
/wwwroot/
...
--------------------------------------------
/library/App/Model/目录下存放的是现有的CLASS对象的PHP文件,那么我就安装相同的原理新建了一个新文件CreditYd.php,并创建一个新类:
<?php
class App_Model_CreditYd extends App_Model_Abstract
{
省略函数
}
但是在controllers中调用App_Model::factory('CreditYd');时出错。functory函数如下:
class App_Model
{
static public function factory($model)
{
$className = 'App_Model_' . $model;
$classPath = _LIB_DIR_ . '/App/Model/' . $model . '.php';

if (!file_exists($classPath)) {
throw new Exception('Class Not Fonud');
} else {

$model = new $className;

//error_log("[new className]\r\n", 3, _LIB_DIR_ . '/App/error.log');

if ($model instanceof App_Model_Abstract) {
return $model;
} else {
throw new Exception('Error');
}
}
}
}
--------------------------------------------------------
错误行是在 $model = new $className;,是找不到对象??
因为没有使用过Zend,也不知道如何创建对象,是不是要像C语言一样的,需要包含,需要make。
求高手解答!!!!
...全文
153 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
nirvana_newbie 2013-04-26
  • 打赏
  • 举报
回复
引用 6 楼 yeinuse 的回复:
引用 5 楼 nirvana_newbie 的回复:引用 4 楼 yeinuse 的回复:引用 3 楼 nirvana_newbie 的回复:这个类的头文件引用了没? 类的头文件是???只有CreditYd.php, 在哪里引用 就在你写这些代码的PHP文件中的开头引用一下。include_once 'CreditYd.php'; 但是现有的model中的源代码好像……
一般开源的框架都是封装好的,所有的头文件及常用函数都写到一个文件中,比如include 'utils.php'在这个utils.php中引入了许多头文件,那么到你的页面中只需要引入utils.php就可以了。所以说你看不到其他文件引用你这个model的头文件。
yeinuse 2013-04-25
  • 打赏
  • 举报
回复
引用 5 楼 nirvana_newbie 的回复:
引用 4 楼 yeinuse 的回复:引用 3 楼 nirvana_newbie 的回复:这个类的头文件引用了没? 类的头文件是???只有CreditYd.php, 在哪里引用 就在你写这些代码的PHP文件中的开头引用一下。include_once 'CreditYd.php';
但是现有的model中的源代码好像也没看到被引用,还是要某个地方被引用了?
nirvana_newbie 2013-04-25
  • 打赏
  • 举报
回复
引用 4 楼 yeinuse 的回复:
引用 3 楼 nirvana_newbie 的回复:这个类的头文件引用了没? 类的头文件是???只有CreditYd.php, 在哪里引用
就在你写这些代码的PHP文件中的开头引用一下。include_once 'CreditYd.php';
yeinuse 2013-04-25
  • 打赏
  • 举报
回复
引用 3 楼 nirvana_newbie 的回复:
这个类的头文件引用了没?
类的头文件是???只有CreditYd.php, 在哪里引用
nirvana_newbie 2013-04-25
  • 打赏
  • 举报
回复
这个类的头文件引用了没?
  • 打赏
  • 举报
回复
呵呵 我是外行 zf 好像 有一个工具 可以方便创建 控制器 模型 试图 安装好后 直接在cmd下面 zf create xxxx 就能自己创建
xuzuning 2013-04-25
  • 打赏
  • 举报
回复
你的这种写法似乎不合他的规矩吧?不过我也没有用过这个玩意 你在 $model = new $className; 前加一句 include_once $classPath; 看看

4,251

社区成员

发帖
与我相关
我的任务
社区描述
国内外优秀PHP框架讨论学习
社区管理员
  • Framework
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧