В настоящее время я нахожусь в процессе разработки сильно интегрированной платформы 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 по-прежнему создавалось.
Задача ещё не решена.
Других решений пока нет …