在新鲜的苏格兰威士忌盒https://box.scotch.io/上(我通常建议)
和这位作曲家:
{
"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"
}
使用https://github.com/silverstripe/silverstripe-omnipay
中的payment.ymlSilverstripe构建付款,但不包括任何Omnipay类。我之前使用过Omnipay和SS没有任何问题。
有人知道发生了什么事吗?
答案 0 :(得分:1)
确保在命令行上运行以下命令:
$> ./framework/sake dev/build flush=all
同样值得一提的是吹掉SS'的内容。缓存(你正在使用Vagrant,所以假设这是一个Dev env),如果你正在使用F / S而不是内存缓存或其他类似的东西,它通常位于/ tmp中,然后再次运行dev / build。这将清除并重建您的缓存,并在此过程中告诉SS有关它可用的所有新类。
答案 1 :(得分:0)
你得到了什么错误?你是如何尝试访问课程的?
您应该可以调用这样的类(取决于Omnipay版本)
<?php
use Omnipay\Omnipay;
class PaymentPage extends Page
{
function ...
{
try {
$response = $gateway->purchase([...
}
}
答案 2 :(得分:0)
silverstripe-omnipay对其许多文件使用php namespaces,恰好ServiceFactory就是其中之一,所以为了让SilverStripe找到要包含的正确文件,必须在您打算使用ServiceFactory的文件的顶部。
import React, { Component } from 'react';
import './Home.css';
class Home extends Component {
componentDidMount(){
//setup your timer here.
//in your timer, call setState on this
//something like this.setState({textThatChanges:YourText});
}
render() {
return (
<section>
<h1>Hello, my name is Barry Allen</h1>
<p>I like to <span> {this.state.textThatChanges}</span></p>
</section>
);
}
}
export default Home;
这并不完全是显而易见的,因为为SilverStripe制作的模块很少使用命名空间和silverstripe-omnipay没有提及ServiceFactory在其示例中是命名空间。