0

Symfonyを使用してコーディングされたWebサイトを課金システムWHMCSと統合する方法を見つけようとしています。

私が最初に試したのは、whmcsという新しいsymfonyモジュールを作成することでした。そのモジュールでは、ob_start / require_once / ob_get_contentsを使用してページを取得していましたが、ログやその他の場所でエラーが発生することなく、空白のページが表示され続けました。とにかくこれはナビゲーションの悪夢になるだろうから、私はその考えをあきらめた。

私の2番目のアイデアは、WHMCSフックシステムを利用することでした。これまでのところ、1つのことを除いて機能しました。layout.phpファイルを呼び出す方法がわかりません。これが私の現在のコードです:

function getSymfonyLayout()
{
    require_once($_SERVER['DOCUMENT_ROOT'].'/../config/ProjectConfiguration.class.php');
    $configuration = ProjectConfiguration::getApplicationConfiguration('frontend', 'prod', true);
    $context = sfContext::createInstance($configuration);
    $context->getRequest()->setRelativeUrlRoot('');
    $context->getInstance()->getConfiguration()->loadHelpers('Partial');
    echo get_partial("global/header");
}

add_hook("ClientAreaPage",1,"getSymfonyLayout");

ここでの私の問題は、ヘッダーがロードされている間、メタ、css、javascriptがないことです。これらの設定はview.ymlファイルに保存され、パーシャルはそのファイルをロードしません。

echo get_layout("layout");またはのようなことをする方法を見つける必要がありますecho get_methodaction("whmcs", "index");

おそらくばかげたことかもしれませんが、ウィキ、フォーラム、symfonyの本を読んでいて、使用する必要のあるコードが見つかりません。

4

2 に答える 2

3

カールを使用してみてください

$url = 'your symfony url';
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_TIMEOUT, 30);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $query_string);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
$data = curl_exec($ch);
echo $data;

上記のコードは、curlリクエストをURLに送信します$url

$query_string必要に応じてページに投稿するデータです

$query_string = "";
foreach ($postfields AS $k => $v)
    $query_string .= "$k=" . urlencode($v) . "&";

$query_string = trim($query_string, '&');

送信するパラメーターの配列はどこに$postfieldsありますかさらに、クロスドメインajaxリクエストを送信でき(jQueryを使用している場合は、$.ajaxオプションdataTypeをに設定するだけですjsonp)、アクションのコンテンツ部分のみが読み込まれます(スタイルシートとJavaScriptは含まれていません)。 )。

于 2012-11-29T10:57:41.527 に答える
1

アクションメソッドでは、次を使用します。

$output = $this->getController()->getPresentationFor("module", "action");

これにより、指定されたモジュールとアクションの出力が$output;にレンダリングされます。詳細については、 http://www.symfony-project.org/api/1_2/sfController#method_getpresentationを参照してください。

于 2010-02-28T12:56:50.667 に答える