Повторно PHP 2.5. * В Laravel 5.1, получая ошибку ‘Call to private method’

В настоящее время я нахожусь в процессе разработки сильно интегрированной платформы Recurly, в которой пользователи постоянно имеют возможность добавлять / редактировать / удалять функции, которые будут немедленно отражены в их стоимости подписки.

Среда для этого проекта — Laravel 5.1 и пытается использовать PHP-клиент Recurly для упрощения интеграции API. Чтобы заставить работать множество объектов Recurly, мне пришлось добавить пространство имен в PHP-файлы Recurly, чтобы на них можно было успешно ссылаться и ссылаться друг на друга в Laravels Framework. то есть

<?php

namespace App\Libraries\Recurly;

use DateTime;
use DOMDocument;

abstract class Recurly_Base
{

для всех 44 или около того файлов классов, участвующих в версии 2.5. * библиотеки Recurly PHP.

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

Call to private method Recurly_Base::addLink() from context 'App\Libraries\Recurly\Recurly_Base'

Эта ошибка выдается во время этого блока кода

        $user = $request->user();

$subscription = Recurly_Subscription::get($user->recurly_subscription_code);
$subscription->plan_code = '<plan_code>';

$user->subscription_pricing = $user->subscription_pricing + $newItemPrice;
$user->updated_at = $user->freshTimestamp();$subscription->unit_amount_in_cents =  $user->subscription_pricing;

$subscription->updateImmediately(); // <- The offending line

$user->save();

Кажется, что по какой-то причине класс Recurly_Base не может получить доступ к своему собственному приватному методу addLink.

Я попытался решить эту проблему, ослабив видимость всех методов и значений Recurly_Base, чтобы «приватность» addLink не имела значения, но исключение FatalErrorException по-прежнему создавалось.

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]