2016-02-14 7 views
0

Попытка включить php-файл в скрипт, и даже при том, что страница загружается без показов или ошибок регистрации, включенный файл не выполняется.включенные файлы не соблюдаются

Я создал тестовый файл, который выглядит следующим образом:

<?php 

$sale_amount = '10.00'; 
$product = 'Drive-Plan'; 
include('partners/controller/record-sale.php'); 
echo "commission counted" 
?> 

открытия этого файла в браузере завершает ожидаемую функцию.

Попытка включить этот же код в мой скрипт не выполняет функцию.

оригинальный сценарий хорошо работает:

/** 
    * Swap current users plan to a new one. 
    * 
    * @return \Illuminate\Contracts\Routing\ResponseFactory|\Symfony\Component\HttpFoundation\Response 
    */ 
    public function swapPlan() { 
     if ($this->user->subscribed() && Input::get('plan')) { 
      $this->user->subscription(Input::get('plan'))->swap(); 

      return response(trans('app.planSwapSuccess', ['plan' => Input::get('plan')]), 200); 

     } 
    } 

В том числе моего файла в этом сценарии не имеет ожидаемый эффект.

/** 
    * Swap current users plan to a new one. 
    * 
    * @return \Illuminate\Contracts\Routing\ResponseFactory|\Symfony\Component\HttpFoundation\Response 
    */ 
    public function swapPlan() { 
     if ($this->user->subscribed() && Input::get('plan')) { 
      $this->user->subscription(Input::get('plan'))->swap(); 

      return response(trans('app.planSwapSuccess', ['plan' => Input::get('plan')]), 200); 


$sale_amount = '10.00'; 
$product = 'Drive-Plan'; 
include('partners/controller/record-sale.php'); 
     } 
    } 

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

Я потратил несколько дней, пытаясь понять это. Поскольку мой тестовый файл работает, я предполагаю, что я пропускаю что-то очевидное в полном скрипте.

Спасибо, что посмотрели.

Comeplete файл:

<?php namespace App\Http\Controllers; 

use App; 
use Auth; 
use Input; 
use Stripe\Stripe; 
use Stripe\Plan; 

class PaymentsController extends Controller { 

    public function __construct() { 
     $this->middleware('loggedIn'); 
     $this->middleware('paymentsEnabled'); 

     $this->user = Auth::user(); 
     $this->settings = App::make('App\Services\Settings'); 

     Stripe::setApiKey($this->settings->get('stripe_secret_key')); 
    } 

    /** 
    * Subscribe user to a plan or swap him to a different plan. 
    * 
    * @return response 
    */ 
    public function upgrade() { 
     if ($this->user->subscribed()) { 
      $this->user->subscription(Input::get('plan'))->swap(); 
     } else { 
      $this->user->subscription(Input::get('plan'))->create(Input::get('stripe_token'), ['email' => $this->user->email]); 
     } 

     return response(trans('app.upgradeSuccess'), 200); 


$sale_amount = '10.00'; 
$product = 'Drive-Plan'; 
include('partners/controller/record-sale.php'); 

    } 

    /** 
    * Swap current users plan to a new one. 
    * 
    * @return \Illuminate\Contracts\Routing\ResponseFactory|\Symfony\Component\HttpFoundation\Response 
    */ 
    public function swapPlan() { 
     if ($this->user->subscribed() && Input::get('plan')) { 
      $this->user->subscription(Input::get('plan'))->swap(); 

      return response(trans('app.planSwapSuccess', ['plan' => Input::get('plan')]), 200); 


$sale_amount = '10.00'; 
$product = 'Drive-Plan'; 
include('partners/controller/record-sale.php'); 
     } 
    } 

    /** 
    * Attach new credit card to user. 
    * 
    * @return \Illuminate\Contracts\Routing\ResponseFactory|\Symfony\Component\HttpFoundation\Response 
    */ 
    public function addNewCard() { 
     $this->user->updateCard(Input::get('stripe_token')); 

     return response(trans('app.cardAddSuccess'), 200); 
    } 

    /** 
    * Resume a canceled subscription. 
    */ 
    public function resumeSubscription() { 
     $this->user->subscription(Input::get('plan'))->resume(Input::get('token')); 

     return $this->user; 


$sale_amount = '10.00'; 
$product = 'Drive-Plan'; 
include('partners/controller/record-sale.php'); 

    } 

    /** 
    * Cancel users subscription. 
    * 
    * @return \App\User 
    */ 
    public function unsubscribe() { 
     $this->user->subscription()->cancel(); 

     return $this->user; 
    } 

    /** 
    * Return current users invoices. 
    * 
    * @return array 
    */ 
    public function getInvoices() { 
     return view('invoices')->with('invoices', $this->user->invoices())->with('settings', $this->settings); 
    } 

    /** 
    * Download invoice with given id. 
    * 
    * @param {int|string} $id 
    * @return \Symfony\Component\HttpFoundation\Response 
    */ 
    public function downloadInvoice($id) { 
     return $this->user->downloadInvoice($id, [ 
      'vendor' => $this->settings->get('invoiceVendor'), 
      'product' => $this->settings->get('invoiceProduct'), 
     ]); 
    } 

    /** 
    * Return all created plans. 
    * 
    * @return array 
    */ 
    public function getPlans() { 
     $plans  = Plan::all(); 
     $formatted = []; 

     foreach($plans->data as $plan) { 
      $formatted[] = [ 
       'interval' => $plan['interval'], 
       'name' => $plan['name'], 
       'amount' => $plan['amount']/100, 
       'currency' => $plan['currency'], 
       'id' => $plan['id'], 
       'created' => $plan['created'], 
      ]; 
     } 

     usort($formatted, function($a1, $a2) { 
      if ($a1['created'] == $a2['created']) return 0; 
      return ($a1['created'] < $a2['created']) ? -1 : 1; 
     }); 

     return $formatted; 
    } 
} 
+0

любое изменение, если вы используете 'require'? –

+0

no require_once. если этот файл содержит, прежде чем вы получите ошибку. php – Naumov

+0

@ Использование Dagon ничего не меняет. нет фатальной ошибки. – cam

ответ

0

Ваш метод заканчивается возвращением, подразумевается, что вы включить в методах и переменных, являющихся набор никогда не достигнут.

Пример:

Moving сказал включают и переменные до возвращения должны решить эту проблему.

/** 
* Resume a canceled subscription. 
*/ 
public function resumeSubscription() { 
    $this->user->subscription(Input::get('plan'))->resume(Input::get('token')); 

    // Moved to before return 
    $sale_amount = '10.00'; 
    $product = 'Drive-Plan'; 
    include('partners/controller/record-sale.php'); 

    return $this->user; 

    // UNREACHABLE 
    //$sale_amount = '10.00'; 
    //$product = 'Drive-Plan'; 
    //include('partners/controller/record-sale.php'); 
} 
+0

да. Большое спасибо. это сработало. Большое вам спасибо за ваше время. Мне действительно нужно правильно изучить php и javascript. как вы узнали php? – cam

+0

Изучил основы в колледже, но действительно объектно-ориентированное программирование. Я узнал себя через различные обучающие программы YouTube и восполнил пробелы в том, что я узнал в колледже. Вклад/чтение в StackOverflow - отличная помощь. слишком. ;) –

+0

Обратите внимание, что это довольно странно и в большинстве случаев неверно иметь эхо в методе. На самом деле такой маленький include должен быть функцией, возможно даже статической. Но я не буду подробно останавливаться на этом. Просто должен был сообщить вам. –