找不到课程/不能重新开课

时间:2015-04-02 13:32:04

标签: php class composer-php require

你好,我在laravel项目中尝试在一个文件中包含一些类时遇到了一个奇怪的问题。这是文件:

<?php namespace Libraries\MPowerLib;

require("mpower/dependency_check.php");

set_include_path(get_include_path() . PATH_SEPARATOR . realpath(dirname(__FILE__)));

abstract class MPower {
  const VERSION = "1.2.0";
}

if (strnatcmp(phpversion(),'5.3.0') >= 0) {
  define('JSON_ENCODE_PARAM_SUPPORT',   true);
}else{
  define('JSON_ENCODE_PARAM_SUPPORT',   false);
}

require_once("mpower/setup.php");
require_once("mpower/customdata.php");
require_once("mpower/checkout.php");
require_once("mpower/checkout/store.php");
require_once("mpower/checkout/checkout_invoice.php");
require_once("mpower/checkout/onsite_invoice.php");
require_once("mpower/direct_pay.php");
require_once("mpower/direct_card.php");
require_once("mpower/libraries/Requests.php");
require_once("mpower/utilities.php");

现在,当我使用require_once时,我得到:

Class 'Libraries\MPowerLib\MPower_Checkout_Invoice' not found

然而,当我使用时,只需要它可以工作,但我一直收到这个错误:

Cannot redeclare class libraries\mpowerlib\mpower_checkout

我对此感到非常困惑,已经玩过尝试include和include_once的代码,但仍然没有变化。

1 个答案:

答案 0 :(得分:0)

 1.Add the mpower composer package to your composer.json file instead of adding the library manually

   "require": {
      "laravel/framework": "5.2.*",
      "sirakoff/mpower_php":"dev-master"
   },

 2.Autoload the package by adding this to your composer.json file

   "psr-0": {
        "Sirakoff\\":["src/"]
    }

 3. Set Mpower keys and Tokens in your controllers constructor method

   public function __construct(){
       \MPower_Setup::setMasterKey("dd6f2c90-f075-012f-5b69-00155d866600");
       \MPower_Setup::setPublicKey("test_public_oDLVlm1eNyh0IsetdhdJvcl0ygA");
       \MPower_Setup::setPrivateKey("test_private_zzF3ywvX9DE-OSDNhUqKoaTI4wc");
       \MPower_Setup::setMode("test");
       \MPower_Setup::setToken("ca03737cf942cf644f36");

   }


 4. Now you can make use of the package in your controller
  public function makePayment(Request $request)
{
        $co = new \MPower_Checkout_Invoice();

        //addItem(name_of_item,quantity,unit_price,total_price,optional_description)
        $co->addItem("13' Apple Retina 500 HDD",1,1.99,1.99);
        $co->addItem("Case Logic laptop Bag",2,1.50,3.00,"Black Color with white stripes");
        $co->addItem("Mordecai's Bag",2,1.99,3.98);

        $co->setTotalAmount(8.97);

        $co->setDescription("Payment for general goods.");

        $co->addTax("VAT (15)",50);
        $co->addTax("NHIL (10)",50)

        $co->addCustomData("Firstname","Alfred");
        $co->addCustomData("Lastname","Rowe");
        $co->addCustomData("CartId",929292872);

        if($co->create()) {
             //Your code here
        }


}