問題タブ [symfony-routing]

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.

0 投票する
2 に答える
294 参照

php - Symfony2 受け入れテストが機能しない

現在、Symfony2 アプリケーションの受け入れテスト ケースを作成しています。以下を行っています。

ただし、以下のログファイルを調べると失敗する場合があります。

どうやら

$_SERVER変数にいくつかの値が欠落しているようです。手がかり、またはテストケースを作成するためのより良い方法はありますか。

DataHelper.php

0 投票する
1 に答える
357 参照

php - ファイルが存在する場合は Apache にリクエストを処理させ、そうでない場合は Symfony フロント コントローラー経由でルーティングします。

Symfony に更新しようとしている非常に古い php アプリケーションがあります。

アプリケーションは現在、次のような構造になっています。

ページには、関数などでいっぱいのヘルパー ファイルがあり、アセットでいっぱいのフォルダーもいくつかありますが、それはあまり重要ではありません。したがって、特定のページにアクセスするには、ブラウザで domain.com/php_page1.php または domain.com/dashboard/dashboard_page1.php を指定します... フロント コントローラーはありません。すべてのページに直接アクセスします。

全体として、一度にリファクタリングするには多すぎるので、一度に 1 ページずつ分割して行いたいと考えています。

私がやりたいことは、symfony を現在持っているものの上にインストールすることです。これにより、symfony 構造は現在ここにあるものと共存します。

Symfony を正常にインストールし、サンプルのレガシー ページを移行しました (Web ルートが移動したことに注意してください)。これはうまくいきます。

問題は、最終的に、レガシー ページが存在する場合はそれらを提供し、存在しない場合はフロント コントローラー (app.php) を通過するために Apache が必要なことです。

これが私が試したことです。

さまざまな .htaccess ルールを試して、Apache が /www および /www/dashboard のファイルを提供できるようにしました。これらは失敗し、Symfony は一致するルートがないことを教えてくれます。

Symfony も試しまし$this->redirect('..\www\php_page1.php');た。これは失敗し、Symfony は「構成されたディレクトリの外でテンプレートを読み込もうとしたようです」と言ってきます。

最後に、ルートとして /dashboard を追加しようとしました:

小枝のパスを追加しました:

これには 3 つの例外があります。

FileLoaderLoadException in FileLoader.php118行目:

InvalidArgumentException in YamlFileLoader.php371行目:

ParseException in Inline.php108行目:

質問

だから私の質問は:現在存在するURLが呼び出された場合(つまり、domain.com/php_page1.php)、SymfonyまたはApacheを介して直接そのページを提供するようにSymfony / Apacheを構成するにはどうすればよいですか? Symfony のフロントコントローラーにリクエストを処理させますか?

編集

私が現在持っている .htaccess は次のとおりです。

これは Symfony で機能し、ルートが定義されているものはすべてルーティングします。問題は、それが /www/web (新しい Web ルート) にあることです。これは、Symfony が Web ルートを配置したい場所です。Web ルートの外にある /www または /www/dashboard にはアクセスしません。

.htaccess を使用して、Apache に Web ルートから 1 レベル下のファイルを取得させるか、Symfony にそれらのページを一般的な php スクリプトとして提供させようとしています。

0 投票する
2 に答える
461 参照

content-management-system - シンプルな CMS 機能を既存の Symfony アプリケーションに追加するにはどうすればよいですか?

MySQL データベースにアクセスする既存の Web アプリケーションがあります。このアプリケーションを Symfony に移植しています。アプリケーション全体を一度に移植することはできないため、新しいアプリケーションは古いデータベースを使用する必要があります。つまり、古いアプリケーションと新しいアプリケーションが同じデータベースにアクセスし、アプリケーションが同時に実行されます。

古いアプリケーションには、移植する必要がある単純な CMS 機能がありました。

pageページツリーを表すテーブルがあります。すべてのページにはslugフィールドがあります。URL パスは、ページ ノードを識別するパスを表すスラッグで構成されます"/[parent-slug]/[child-slug]"

ページ テーブルには、contentフィールドも含まれています。既に述べたように、CMS の機能は非常に単純であるため、コンテンツはページ レイアウト内のページ コンテンツとしてレンダリングされるだけです。ページ エントリは、ページ レイアウト/テンプレートも指定します。

私の問題は、ルーティングの設定方法がわからないことです。通常の Symfony アプリケーションでは、以前から URL パターンを知っていましたが、この場合は動的です。また、ルートはユーザーがいつでも変更できるため、キャッシュできません。Symfony のルーティングを完全に落として、自分で何かを実装する必要があるのだろうか。しかし、どのように?

ここで、フレームワーク VS CMS ルーティングの競合について多くのことを伝える Symfony CMF を見つけました。だから最初は、これが正しい方法だと思いました。ただし、チュートリアルは、PHPRC に基づいてまったく新しいアプリケーションを構築することを目的としています。チュートリアルの概念を自分のユース ケースに当てはめることができませんでした。

0 投票する
2 に答える
2953 参照

symfony - URLで指定しないsymfonyのデフォルトロケール

locale次のルートに正常にアクセスできるように、Symfony オプションを設定したいと思います。

現在、アクセス/{locale}/routeしてビューを取得できます/routeが、No route found for "GET /route". 私の構成は次のとおりです。

私のコントローラーには次の注釈があります。

を具体的に含めるとlocale、すべて機能します。を除外するとlocaleNo route foundエラーが発生します。