問題タブ [autoloader]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
php - 名前空間オートローダーによる 1 つ以上のクラスの除外
プロジェクトで、HTML の解析に phpQuery を使用し、DB の永続化に Doctrine2 を使用しています。
Doctrine 2 は名前空間に基づくオートローダ戦略を使用するため、 \Doctrine\Orm\EntityManager を呼び出すと、 DoctrineDir__/Doctrine/Orm/EntityManager.php ロード相対クラス内に入ります。
問題は、phpQuery が複雑なライブラリであり、プロジェクトに必要な HTML をスクレイピングする必要があり、名前空間が付けられていないことです。
名前空間を試してみましたが、phpquery が機能せず、エラーは発生しません。
それで、私が求めているのは、オートローディング戦略からいくつかのクラスを除外できるコードはありますか?
ありがとう
php - PHPExcel クラス 'PHPExcel_Worksheet' が見つかりません
フレームワークに PHPExcel をインポートすると、次のエラーが発生しました。
PHPExcel を含むクラスをオートロードしていますが、PHPExcel がspl_autoload_register
既存のオートローダー関数を SPL に登録するために使用しているようです。また、ファイルがロードされて取得されたので、ファイルをエコーしようとしました
したがって、ロードされているためAutoloader.php
、問題ではないようです。どんな提案でも大歓迎です、ありがとう!ZipStreamWrapper.php
String.php
php - Symfony2 は別のディレクトリにバンドルされていますか?
基本的なレイアウトは次のとおりです。
shared
はサブモジュール (git) ですが、Symfony が同じ名前空間で共有バンドルを見つけられるようにする必要があります。
composer.json ファイルを変更して、新しいディレクトリを追加しようとしました。
これは可能ですか?それとも、何かが足りないのですか?
php - ウェブサイト全体を OOP で書き直していますが、これはすべて間違っていますか?
これまで、私のウェブサイトはすべて非常に直線的なコードで書かれており (QBASIC に感謝します!)、コードが繰り返し、乱雑で、まとまりのないものであることにしばしば悩まされていました。すべての動的ページには常に独自の個別の .php ファイルがあり、関数を使用したことはありません。
テンプレート エンジンとして Smarty を使用して OOP を使用して、サイト全体を書き直しています。
これが私の現在のプロセスです:
1) index.php?/view/fluffybunny への訪問者のヒット。index.php は、Web サイトの残りの部分の単なるハンドラーです。
2) 'new page()' はオートローダーを起動して、page.class.php をインクルードします。
最初に私の質問は、私が OOP の初心者として犯している明らかな間違いを誰かが見ることができますか?
次に、index.php ハンドラが $page->index()、$page->view() を呼び出したかどうかに関係なく、すべてのページ (ユーザー認証など) で実行する必要があるコードの大きなブロックがいくつかあります。 ..等。このコードを page.class.php に統合するにはどうすればよいですか?
php - MVC の PHP 動的名前空間
私は新しいアプリを始めていますが、ついに名前空間を使用して新しい時代に参加することにしました。私は常に次のようなコードを書いていることに気づきました:
キーワードを使用しようとすると、use
うまくいかないようです (または、正しく理解できません)。
その後
これにより、オートローダーは、パスが目的の「/System/App/Controllers/MyController」ではなく、「/Controller/MyController」に加えた基本パスであると認識します。接頭辞スラッシュの有無にかかわらず、さまざまな組み合わせを試しました。
私が試みていることの実際の例は次のようになります(MyControllerを取得しようとしています):
上記は、オートローダーからSystem\App\Controllers\MyControllerというクラスを要求すると思います。その後、スラッシュを反転してファイル拡張子を追加すると出来上がりです。代わりに、存在しないController\MyControllerとして送信されます。Routerクラスが別の名前空間にあるためですか? 私は何が欠けていますか?
TL;DR; MVC パターンで、毎回完全修飾名前空間を入力することなく、クラス インスタンスを動的にインスタンス化するにはどうすればよいですか?
PS私はPHP 5.4.15を使用しています
編集
自動ロードは次のようにセットアップされます。
オートロード機能:
のダンプを行うと、$className
PHP が名前空間を認識しているかどうかを確認できます。
php - Zend Framework 1.x - データベースからデータを取得するにはどうすればよいですか?
これが私のプロジェクト構造です: http://img823.imageshack.us/img823/7047/68818300.png
php.ini を使用してデータベースに接続しました:
Googleで検索しましたが、やり方がたくさんありましたが、方法がわかりません。私はこの方法を試していますが、うまくいきません。これが私のモデルです:
そして、これは私のコントローラーです:
コントローラーはユーザーモデルが何であるかを知りません。コントローラーでモデルを呼び出すにはどうすればよいですか? ここに私のプロジェクトがあります: https://www.box.com/s/idw5twyyo41yn8gq1kfe
php - オートローダーはクラス Symfony2 を期待
私はsymfony 2.3フレームワークを使用しており、オートローダーはファイルを見つけたと主張していますが、クラスはありません:
これが参照しているファイルを以下に示します。
とにかく、役立つかもしれない詳細は、最近Doctrineをインストールしてコマンドを実行したことです...
これらのコマンドの後、symfony は動作を停止しました。これが奇妙なバグなのか何かなのかわかりません。さらに情報が必要な場合は、投稿できます。助けてくれてありがとう。