Silverstripe Omnipay缺少课程

Silverstripe Omnipay缺少课程,silverstripe,omnipay,Silverstripe,Omnipay,在一个新鲜的苏格兰威士忌盒上(我通常推荐) 还有这位作曲家: { "name": "silverstripe/installer", "description": "The SilverStripe Framework Installer", "require": { "php": ">=5.3.3", "silverstripe/cms": "3.5.1", "silverstripe/framework": "3.

在一个新鲜的苏格兰威士忌盒上(我通常推荐)

还有这位作曲家:

{
    "name": "silverstripe/installer",
    "description": "The SilverStripe Framework Installer",
    "require": {
        "php": ">=5.3.3",
        "silverstripe/cms": "3.5.1",
        "silverstripe/framework": "3.5.1",
        "silverstripe/reports": "3.5.1",
        "silverstripe/siteconfig": "3.5.1",
        "silverstripe-themes/simple": "3.1.*",
        "silverstripe/silverstripe-omnipay": "^2.1",
        "omnipay/paymentexpress": "^2.2",
        "firebase/php-jwt": "^4.0"
    },
    "require-dev": {
        "phpunit/PHPUnit": "~3.7@stable"
    },
    "extra": {
        "branch-alias": {
            "3.x-dev": "3.5.x-dev"
        }
    },
    "config": {
        "process-timeout": 600
    },
    "prefer-stable": true,
    "minimum-stability": "dev"
}
并使用payment.yml from

Silverstripe生成支付,但不包括Omnipay类。我以前使用过Omnipay和SS,没有任何问题


有人知道发生了什么吗?

你会犯什么错误?你是如何尝试访问这些类的

您应该能够像这样调用类(取决于Omnipay版本)


确保在命令行上运行以下命令:

$>。/framework/sake-dev/build-flush=all

同样,如果您使用的是F/S而不是memcache或其他类似的工具,那么就应该将SS'cache(您使用的是Vagrant,所以假设这是一个Dev env)的内容吹走,它通常位于/tmp中,然后再次运行Dev/build。这将清除和重建缓存,并在此过程中告诉SS它可以使用的所有新类。

利用它的许多文件,恰好ServiceFactory是其中之一,因此为了让SilverStripe找到要包含的正确文件,您必须在您打算使用ServiceFactory的文件顶部指定其用途



在您安装
composer
之后,应该有一个
omnipay
文件夹(silverstripe omnipay模块),并且phpleague omnipay类应该在
vendor
中……不是这样吗?是的@bummzack,所有文件都在那里。在它们的顶端回响没有任何作用,它们被忽略了。我曾希望找到一种方法来跟踪生成类清单的过程,这样我就可以查看是权限还是策略之类的。。。刚刚被难住了。你能发布一些失败的示例代码以及运行该代码时收到的错误消息吗?嘿@theruss,这发生在一个新的流浪者盒子上,所以我不确定如何缓存任何东西。。。命令行dev/build flush=all与通过URL调用它有什么不同吗?已经做了几次…好的,我们已经确定您有一个清晰的缓存,您已经运行了composer安装,但是您是否运行了composer更新?运行composer安装时,它会获取composer.lock文件的内容,但除非运行composer update,否则composer.lock不会使用omnipay软件包数据进行更新。更好的做法是根本不手动编辑composer.json,而是使用composer require/。我会遇到类似“致命错误:未找到类'ServiceFactory'”这样的错误-您的示例看起来像是在使用没有Silverstripe Omnipay的Omnipay,因为您包括了“使用Omnipay\Omnipay”,这在我的其他实现中是不必要的,因为我们从不直接给Omnipay打电话,而是通过SS“Payment”和“PurchaseService”课程。是的,说真的。使用composer require而不是手动破解composer.json可能会解决这个问题。如果是其他问题,你会在论坛上看到,其他人也有同样的问题。(我还没想过,但这样的问题不太可能长期得不到解决。
<?php
use Omnipay\Omnipay;

class PaymentPage extends Page
{
    function ...
    {
        try {
            $response = $gateway->purchase([...
    } 
}