Как сгенерировать клиентский код мыла PHP?

Вы могли использовать Шаблон "наблюдатель". Простой функциональный способ выполнить это:

<?php

/** Plugin system **/

$listeners = array();

/* Create an entry point for plugins */
function hook() {
    global $listeners;

    $num_args = func_num_args();
    $args = func_get_args();

    if($num_args < 2)
        trigger_error("Insufficient arguments", E_USER_ERROR);

    // Hook name should always be first argument
    $hook_name = array_shift($args);

    if(!isset($listeners[$hook_name]))
        return; // No plugins have registered this hook

    foreach($listeners[$hook_name] as $func) {
        $args = $func($args); 
    }
    return $args;
}

/* Attach a function to a hook */
function add_listener($hook, $function_name) {
    global $listeners;
    $listeners[$hook][] = $function_name;
}

/////////////////////////

/** Sample Plugin **/
add_listener('a_b', 'my_plugin_func1');
add_listener('str', 'my_plugin_func2');

function my_plugin_func1($args) {
    return array(4, 5);
}

function my_plugin_func2($args) {
    return str_replace('sample', 'CRAZY', $args[0]);
}

/////////////////////////

/** Sample Application **/

$a = 1;
$b = 2;

list($a, $b) = hook('a_b', $a, $b);

$str  = "This is my sample application\n";
$str .= "$a + $b = ".($a+$b)."\n";
$str .= "$a * $b = ".($a*$b)."\n";

$str = hook('str', $str);
echo $str;
?>

Вывод:

This is my CRAZY application
4 + 5 = 9
4 * 5 = 20

Примечания:

Для этого исходного кода в качестве примера, необходимо объявить все плагины перед фактическим исходным кодом, что Вы хотите быть растяжимыми. Я включал пример того, как обработать единственный или несколько значений, передаваемых плагину. Самая твердая часть этого пишет фактическую документацию, которая перечисляет, какие аргументы передаются каждому рычагу.

Это - всего один метод выполнения сменной системы в PHP. Существуют лучшие альтернативы, я предлагаю, чтобы Вы проверили Документацию WordPress для получения дополнительной информации.

Извините, кажется, что символы подчеркивания заменяются объектами HTML Скидкой с цены? Я могу повторно отправить этот код, когда эта ошибка исправлена.

Редактирование: Nevermind, только кажется, что путь, когда Вы редактируете

8
задан hakre 2 January 2013 в 18:43
поделиться

3 ответа

You can use the method [generateProxyCode] provided in the package SOAP_WSDL (http://pear.php.net/reference/SOAP-0.9.4/SOAP/SOAP_WSDL.html#methodgenerateProxyCode) method instead and save it to a file:

$WSDL     = new SOAP_WSDL($wsdl_url); 
$php      = $WSDL->generateProxyCode();
file_put_contents('wsdl_proxy.php', '<?php ' . $php . ' ?>');

require 'wsdl_proxy.php';
9
ответ дан 5 December 2019 в 05:19
поделиться

Просто чтобы помочь любому, кто наткнется на этот пост и задумается: «Какого черта я могу работать с этой штукой SOAP_WSDL?» (как и я)

Откройте командную строку и перейдите в свой каталог php (в этом примере я установил XAMPP Lite)

Попав в каталог php, я запустил скрипт pear.bat. После этого я смог ввести следующую строку через cmd

pear -V (предоставляет версию вашей установки)

pear list

Если вы набираете вышеуказанное и не видите SOAP, вам необходимо выполнить следующее из строки cmd:

  • pear install Net_DIME-1.0.1

  • pear install Mail_Mime-1.5.2

  • pear install Mail-1.2.0b1

  • pear install SOAP-0.12.0

Now после установки этих пакетов и выполнения еще одного «грушевого списка» вы должны увидеть список SOAP.

4
ответ дан 5 December 2019 в 05:19
поделиться

Есть приложение для этого, оно называется wsdl2phpgenerator:

http://code.google.com/p/wsdl2phpgenerator/

Запустите его с WSDL файлом и оно сгенерирует классы на основе WSDL сервисов.

8
ответ дан 5 December 2019 в 05:19
поделиться
Другие вопросы по тегам:

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