在PHP脚本中加载Zend Framework及其应用程序


Load Zend Framework and its application in a PHP script

我需要在PHP脚本中找到Zend Framework及其MVC应用程序,这样我就可以创建一些模型来查询数据库。框架和一些库是这样加载的(脚本是由其他人创建的):

    /** Initialise Zend  */
define( 'BRIDGE_BASE_DIR', dirname( __FILE__ ) );
set_include_path( get_include_path().PATH_SEPARATOR.BRIDGE_BASE_DIR.'/../library' );
require_once('Zend/Loader/Autoloader.php');
require_once 'Zend/Config/Ini.php';
$autoloader = Zend_Loader_Autoloader::getInstance();
$autoloader->registerNamespace('XYz');
$autoloader->registerNamespace('Yxz');

我想这样称呼一个模型:Franchisee_Model_Franchisee::find($franchiseeId)

位于:application/modules/franchisee/models/franchisee

我尝试了很多方法,但无法加载整个堆栈。有没有一种简单的方法可以在脚本中加载ZF,包括应用程序和应用程序/模块下的所有内容?

更新

我也试过这个:

<?php
error_reporting( E_ALL & ~E_NOTICE );
/** Initialise Zend  */
define( 'BRIDGE_BASE_DIR', dirname( __FILE__ ) );
set_include_path( get_include_path().PATH_SEPARATOR.BRIDGE_BASE_DIR.'/../library' );
require_once('Zend/Loader/Autoloader.php');
require_once 'Zend/Config/Ini.php';
$autoloader = Zend_Loader_Autoloader::getInstance();
$autoloader->registerNamespace('Xyz');
$autoloader->registerNamespace('Yzx');

/** Handle arguments */
if ($argc < 2) {
  echo 'LOG: ' . Zend_Date::now()->toString('YYYY-MM-ddTHH:mm:ss') . ' Please set the environment.'.PHP_EOL;
    exit(1);
}
define("APPLICATION_ENV", $argv[1]);
// echo 'LOG: ' . Zend_Date::now()->toString('YYYY-MM-ddTHH:mm:ss');
// echo " Current environment is: ".APPLICATION_ENV.PHP_EOL;
/** Zend_Application */
define(APPLICATION_PATH, dirname( __FILE__ ).'/../application');
require_once 'Zend/Application.php';
// Create application, bootstrap, and run
$application = new Zend_Application(
    APPLICATION_ENV,
    APPLICATION_PATH . '/configs/application.ini'
);
$application->bootstrap();
echo "Running ZF version: " . Zend_Version::VERSION;
new Admin_Contract_Table();

但我有

Fatal error: Class 'Admin_Contract_Table' not found in /Users/myuser/dev/htdocs/Admin/current/vend_bridge/zend.php on line 42

您还需要引导(但不运行)应用程序。在您拥有的内容之后,添加:

$application = new Zend_Application(
    APPLICATION_ENV,
    APPLICATION_PATH . '/configs/application.ini'
);
$application->bootstrap();

如果您还没有设置CCD_ 3和CCD_。

您尚未在自动加载器中注册Admin命名空间。。

$autoloader->registerNamespace('Admin');