1

サンプル アプリケーションの作成に関する指示に従っています。何かを起動して実行するためだけに、いくつかの(今のところ)静的ページを作成する方法をすばやく把握しようとしています-ユーザー認証やORMなどはありません。

2 つのバンドルを作成しました。

$ php app/console generate:bundle --namespace=app1/FooBundle --format=yml
$ php app/console generate:bundle --namespace=app2/FooBarBundle --format=yml

ドキュメント (および Symfony 1.x の動作に関する知識) から、次を使用して 2 つの「アプリケーション」にアクセスできると予想しました。

http://sf2.examples.localhost/app_dev.php/app1/hello/angrycoder
http://sf2.examples.localhost/app_dev.php/app2/hello/angrycoder

ただし、どちらの場合も、単に 404 エラーが発生しました。

ドキュメントに戻ると、使用する正しい URL は次のとおりであることがわかりました。

http://sf2.examples.localhost/app_dev.php/hello/angrycoder

怒っているコーダーのページが表示された限り、それは「うまくいく」ようです。

ただし、デバッグ ツールバーを表示する方法がまだわかっていないため、どのアプリケーションが実際に呼び出されたのかわかりません。

したがって、私の質問は次のとおりです。

  1. 特定のバンドル内の特定のページ (静的またはその他) にアクセスするにはどうすればよいですか?.

[[編集]]

This is what my app/config/routing.yml file looks like:

app1CoreBundle:
    resource: "@app1CoreBundle/Resources/config/routing.yml"
    prefix:   /

app2CoreBundle:
    resource: "@app2CoreBundle/Resources/config/routing.yml"
    prefix:   /

# Internal routing configuration to handle ESI
#_internal:
#   resource: "@FrameworkBundle/Resources/config/routing/internal.xml"
#   prefix:   /_internal

ご覧のとおり、どちらにも「/」の接頭辞が付いています。だから私が入力すると:

http://sf2.examples.localhost/app_dev.php/hello/angrycoder

実際に呼び出されるアプリケーション (およびその理由)。

私の理解では、特定のアプリケーションを呼び出すことができる唯一の(明白な)方法は、アプリケーションごとに異なるプレフィックスを使用することです-または何か不足していますか?

4

2 に答える 2

2

そのようなニーズには、ルーティング システムを使用する必要があります。
に行くapp/config/routingか、もっと詳しく言うと、src/app1/FooBundle/Resources/config/routing.yml表示されるページを変更できます。

詳細に

// app/config/routing.yml
AcmeHelloBundle
resource: "@AcmeHelloBundle/Resources/config/routing.yml"
prefix:   /
//end

// src/Acme/AcmeHelloBundle/Resources/config/routing.yml
AcmeHelloBundle_homepage:
pattern:  /hello/{name}
defaults: { _controller: AcmeHelloBundle:Default:index }
//end

そのようにして、ルーティング システムとルールを見つけるようにsymfony に指示し ていAcmeHelloBundleます。AcmeHelloBundle/Resources/config/routing.yml
AcmeHelloBundle/Resources/config/routing.yml/hello{placeHolder}Defaultindex

それが明確であることを願っています。

于 2012-06-20T12:18:08.653 に答える
1

Symfony 2 を使用している場合、Symfony 1.x について知っていることは忘れてください。名前と全体的な MVC アプローチを除けば、これらは非常に異なるフレームワークです。

Symfony 2 には、Symfony 1 のような「アプリ」はありません。独自のバンドルを symfony 1 アプリのように扱うことができますが、間違いなく: 直接的な類似物はありません。バンドルは、アプリよりもはるかに一般的で柔軟です (これは良いことです)。

お気づきのとおり、バンドルのコントローラーへのアクセスは、ルーティング システムによって完全に管理されています。

于 2012-06-20T15:38:58.063 に答える