use Zend\Db;
$db = Zend_Db::factory('Pdo_Mysql', array(
'host' => 'localhost',
'username' => 'root',
'password' => '',
'dbname' => 'test'
));
「use」というキーワードで Zend_Db を要求しようとしていますが、クラス Zend_Db が存在しないというエラーが表示されます。
use Zend\Db;
$db = Zend_Db::factory('Pdo_Mysql', array(
'host' => 'localhost',
'username' => 'root',
'password' => '',
'dbname' => 'test'
));
「use」というキーワードで Zend_Db を要求しようとしていますが、クラス Zend_Db が存在しないというエラーが表示されます。
ZF1 を使用している場合、クラスはZend_Db
. この場合、本当に PHP 5.3 の名前空間を使用したい場合、正しい使い方は次のとおりです。
use \Zend_Db;
$db = Zend_Db::factory('Pdo_Mysql', array(
'host' => 'localhost',
'username' => 'root',
'password' => '',
'dbname' => 'test'
));
ZF2 を使用している場合、関連するコンポーネントは ですがZend\Db
、アダプタの作成は通常、モジュール config で定義されたファクトリを使用して行われます。
また、他の場所で述べたように、オートローディングを理解すると、作業がずっと楽になります。
Zend Framework 1.x は、PHP ネームスペースよりもかなり前から存在します。use
その結果、ZF1 はキーワードのようなものに対してあまり友好的ではありません。Zend Framework 1.x のコンポーネントを使用する必要がある場合は、付属のautoloader コンポーネントを使用することでより適切に機能する可能性があります。
フレームワークを MVC アプリケーションとして使用している場合、このすべては意味がありません。時間をかけて、既定の構成がどのように機能するかを学習することをお勧めします。ZF1 を MVC として使用している場合、Zend_Db
コンポーネントは既にオートローダー上にあるためです。
これをファイルの先頭に追加します
require_once 'Zend/Db.php';
アンダースコア名とスラッシュを混ぜないでください
use Zend_Db as Db
$db = Db::factory('Pdo_Mysql', array(
'host' => 'localhost',
'username' => 'root',
'password' => '',
'dbname' => 'test'
));