私が持っているものは、いくつかのリポジトリとともにいくつかのエンティティを含むsymfonyアプリケーションです。 2番目の非symfonyアプリケーションは、そこに書かれたロジックとやりとりするために、最初のものとインターフェースする必要があります(エンティティとその適切なリポジトリを使用するだけです)。 最初のアプリケーションには独自の自動ロードレジスタなどがある可能性があることに注意してください。Symfonyアプリケーションの外部からSymfonyモデルレイヤにアクセスして使用する
私はapp
ディレクトリにある外部アプリケーション用のAPIクラスを考えました。これを使用するには、アプリケーションにスクリプトが必要です。外部アプリケーションが必要とする必要があること
app/authInterface.php
:ここでアイデアです
$loader = require __DIR__.'/autoload.php';
require_once (__DIR__.'/APIAuth.php');
return new APIAuth();
と私が書いた作業APIAuthの例(コードは一種の厄介です:これはちょうど試みですが、あなたができる覚えています)アイデアを得る:
class APIAuth
{
public function __construct()
{
//dev_local is a personal configuration I'm using.
$kernel = new AppKernel('dev_local', false);
$kernel->loadClassCache();
$kernel->boot();
$doctrine = $kernel->getContainer()->get('doctrine');
$em = $doctrine->getManager();
$users = $em->getRepository('BelkaTestBundle:User')->findUsersStartingWith('thisisatry');
}
シェルのすべてで、それを呼び出すことによって動作し、私はそれに満足している:
php app/authInterface.php
が、私はの面で可能な最善の方法でやっている場合、私は思ったんだけど:私は、私は本当に私のコードを実行するために必要なだけのリソースをロードしています
- リソース?カーネルが本当に必要ですか?そうすれば、DB接続を含めてすべてが適切にロードされますが、それ以外の方法があれば確実ではありません。
- symfony論理私はsymfonyと適切にやりとりしていますか?より良い方法がありますか?
なぜ外部アプリケーションを認証するためのHTTP APIを作成しないのですか? – Hidde
明確なインターフェース(例えば、RESTやXMLなど)で、Symfonyを使って適切なバックエンドを構築することをお勧めします。 – LBA
'Auth'は単なる例です。私は実際にSymfonyにアクセスする必要があります。本当の話題に集中できますか? :-) – Bertuz