別のオープンソース プロジェクト (moodle、joomla など) で Yii 関数を使用したいので、Yii の強力なモデルを活用できます。次のコードをファイルの 1 つ ( ROOT/course/edit.php )に入れました。
$yii = dirname(__FILE__) . '/../mws/framework/yii.php';
$config = dirname(__FILE__) . '/../mws/protected/config/main.php';
defined('YII_DEBUG') or define('YII_DEBUG', TRUE);
defined('YII_TRACE_LEVEL') or define('YII_TRACE_LEVEL', 3);
require_once($yii);
Yii::createWebApplication($config);
しかし、次のエラーが発生します。
PHP 警告
include(edit.php.php) [function.include]: ストリームを開くことができませんでした: そのようなファイルまたはディレクトリはありません
D:\WAMP\www\millms\mws\framework\YiiBase.php(427)
415
{
416 include( $classFile);
417
if(YII_DEBUG && basename(realpath($classFile))!==$className.'.php')
418 throw new CException(Yii::t('yii','クラス名 "{class}" はクラスと一致しません) file "{file}".', array(
419
'{class}'=>$className,
420
'{file}'=>$classFile,
421 )));
422 ブレーク;
425 }
426
else
427 include($className.'.php');
428
}
429 else // PHP 5.3 の名前空間を持つクラス名
430 {
431
$namespace=str_replace('\','.',ltrim($className,'\'));
432
if(($path=self::getPathOfAlias($namespace))!==false)
433
include($path.'.php');
434 そうでなければ
435
false を返します。
436 }
437 return class_exists($className,false) || interface_exists($className,false);
438 }
439 真を返します。
D:\WAMP\www\millms\mws\framework\YiiBase.php(427): YiiBase::autoload()
#1
不明(0): YiiBase::autoload("edit.php")
#2
不明(0) : spl_autoload_call("edit.php")
#3
–
D:\WAMP\www\millms\lib\formslib.php(831): is_a("edit.php", "moodle_url")
826 static $formcounter = 1;
827
828 HTML_Common::HTML_Common($属性);
829
$target = empty($target) ? array() : array('target' => $target);
830 $this->_formName = $formName;
831 if (is_a($action, 'moodle_url')){
832 $this->_pageparams = $action->hidden_params_out();
834 } else {
835
$this->_pageparams = '';
836 }
#4
–
D:\WAMP\www\millms\lib\formslib.php(115): MoodleQuickForm->MoodleQuickForm("course_edit_form", "post", "edit.php", "", ...)
110 $action = strip_querystring(qualified_me());
111 }
112
113 $this->_formname = get_class($this); // '_form' サフィックスは、フォーム ID と他の要素の衝突を防ぐために保持されます
114
$this->_customdata = $customdata;
115 $this->_form =& new MoodleQuickForm($this->_formname, $method, $action, $target, $attributes);
116 の場合 (!
118 }
119
$this->set_upload_manager(new upload_manager());
120
#5
–
D:\WAMP\www\millms\course\edit.php(448):moodleform->moodleform("edit.php", array("course" => null, "category" => stdClass))
443 }
444 }
445
446
447 /// 最初にフォームを作成します
448 $editform = new course_edit_form('edit.php', compact('course', 'category'));
449 // コースが既に存在する場合はデフォルトをオーバーライドします
450 if (!empty($course)) {
451 $course->enrolpassword = $course->password; // パスワード フィールドに別の名前が必要です MDL-9929
452 $editform->set_data($course);
生の Yii アプリケーション オブジェクトを作成するにはどうすればよいですか?