Абстракция Контейнера МОК Позади Singleton - Выполнение его неправильно?

Хорошо, похоже, это работает:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="utf-8">
    <title>Results</title>
</head>
<body>

    <?php
        // reCaptcha info
        $secret = "key-goes-here";
        $remoteip = 

Хорошо, похоже, это работает:

[110]

Когда я отправляю это, он отправляет информацию в Pardot :)

SERVER["REMOTE_ADDR"]; $url = "https://www.google.com/recaptcha/api/siteverify"; // Form info $email =

Хорошо, похоже, это работает:

[110]

Когда я отправляю это, он отправляет информацию в Pardot :)

POST["email"]; $firstname =

Хорошо, похоже, это работает:

[110]

Когда я отправляю это, он отправляет информацию в Pardot :)

POST["firstname"]; $lastname =

Хорошо, похоже, это работает:

[110]

Когда я отправляю это, он отправляет информацию в Pardot :)

POST["lastname"]; $phone =

Хорошо, похоже, это работает:

[110]

Когда я отправляю это, он отправляет информацию в Pardot :)

POST["phone"]; $querytype =

Хорошо, похоже, это работает:

[110]

Когда я отправляю это, он отправляет информацию в Pardot :)

POST["querytype"]; $message =

Хорошо, похоже, это работает:

[110]

Когда я отправляю это, он отправляет информацию в Pardot :)

POST["message"]; $termsconditionsfw =

Хорошо, похоже, это работает:

[110]

Когда я отправляю это, он отправляет информацию в Pardot :)

POST["termsconditionsfw"]; $response =

Хорошо, похоже, это работает:

[110]

Когда я отправляю это, он отправляет информацию в Pardot :)

POST["g-recaptcha-response"]; // Curl Request $curl = curl_init(); curl_setopt($curl, CURLOPT_URL, $url); curl_setopt($curl, CURLOPT_POST, true); curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false); curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); curl_setopt($curl, CURLOPT_POSTFIELDS, array( 'secret' => $secret, 'response' => $response, 'remoteip' => $remoteip )); $curlData = curl_exec($curl); curl_close($curl); // Parse data $recaptcha = json_decode($curlData, true); if ($recaptcha["success"]) { echo "Thank you, we will be in contact with you soon."; //extract data from the post //set POST variables $url = 'http://explore.mixtelematics.com/l/69882/2019-01-15/d3zr3d'; $fields = array( 'email' => urlencode(

Хорошо, похоже, это работает:

[110]

Когда я отправляю это, он отправляет информацию в Pardot :)

POST['email']), 'firstname' => urlencode(

Хорошо, похоже, это работает:

[110]

Когда я отправляю это, он отправляет информацию в Pardot :)

POST['firstname']), 'lastname' => urlencode(

Хорошо, похоже, это работает:

[110]

Когда я отправляю это, он отправляет информацию в Pardot :)

POST['lastname']), 'phone' => urlencode(

Хорошо, похоже, это работает:

[110]

Когда я отправляю это, он отправляет информацию в Pardot :)

POST['phone']), 'querytype' => urlencode(

Хорошо, похоже, это работает:

[110]

Когда я отправляю это, он отправляет информацию в Pardot :)

POST['querytype']), 'message' => urlencode(

Хорошо, похоже, это работает:

[110]

Когда я отправляю это, он отправляет информацию в Pardot :)

POST['message']), 'termsconditionsfw' => urlencode(

Хорошо, похоже, это работает:

[110]

Когда я отправляю это, он отправляет информацию в Pardot :)

POST['termsconditionsfw']), ); //url-ify the data for the POST foreach($fields as $key=>$value) { $fields_string .= $key.'='.$value.'&'; } rtrim($fields_string, '&'); //open connection $ch = curl_init(); //set the url, number of POST vars, POST data curl_setopt($ch,CURLOPT_URL, $url); curl_setopt($ch,CURLOPT_POST, count($fields)); curl_setopt($ch,CURLOPT_POSTFIELDS, $fields_string); //execute post $result = curl_exec($ch); //close connection curl_close($ch); } else { echo "Oh no, it seems something went wrong."; } ?> </body> </html>

Когда я отправляю это, он отправляет информацию в Pardot :)

10
задан Machavity 15 October 2018 в 12:35
поделиться

3 ответа

Я видел, что даже Ayende реализует этот шаблон у Носорога код палаты общин, но я отговорил бы от использования его по мере возможности. Существует причина, замок Windsor не имеет этого кода по умолчанию. StructureMap делает, но Jeremy Miller переезжал от него. Идеально, необходимо расценить сам контейнер с таким же подозрения как любая глобальная переменная.

Однако как альтернатива, Вы могли всегда настраивать свой контейнер для разрешения IDependencyResolver как ссылки на контейнер. Это может звучать сумасшедшим, но это значительно более гибко. Просто помните эмпирическое правило, которое объект должен назвать "новым" или выполнить обработку, но не обоих. Для "вызова новая" замена "твердостью ссылка".

4
ответ дан 4 December 2019 в 01:32
поделиться

Это не действительно singleton-класс. Это - статический класс со статическими участниками. И да, который кажется хорошим подходом.

Я думаю, что у мирового судьи Boodhoo даже есть название этого шаблона. Статический шаблон Шлюза.

3
ответ дан 4 December 2019 в 01:32
поделиться

Просто примечание: Microsoft Patterns и Методы создали локатор общего обслуживания (http://www.codeplex.com/CommonServiceLocator), который большинство главных контейнеров МОК будет реализовывать в ближайшем будущем. Можно начать использовать его вместо IDependencyResolver.

BTW: это - распространенный способ решить Вашу проблему, и это работает вполне хорошо.

2
ответ дан 4 December 2019 в 01:32
поделиться
Другие вопросы по тегам:

Похожие вопросы: