Problème de namespace et constructeur parent.

Discussion dans 'Développement d'un site Web ou d'une appli mobile' créé par ortolojf, 30 Novembre 2017.

  1. ortolojf
    ortolojf WRInaute accro
    Inscrit:
    14 Août 2002
    Messages:
    3 129
    J'aime reçus:
    12
    Bonjour

    Je met les premières lignes de mon module de paiement Stripe, promis depuis longtemps à mon site partenaire.

    Ceci d'après le livre de Pete Keen : "Mastering Modern Payments".

    J'ai ( pour l'instant je ne fais pas de Background Workers ), une classe StripeFSM, dérivée de Stripe et lançant la classe FSM ( la Finite State Machine ).

    L'API Stripe est Cartalyst Stripe, qui est parfaite ( pas de slashes inverses dans le code ), mais dont le namespace est : Cartalyst\Stripe, alors que celui de la classe FSM n'est pas précisé.

    Le bug, j'ai tout essayé, mais lancer de manière classique le constructeur parent de StripeFSM ( théoriquement Stripe ), donne null.

    PHP:
    <span class="syntaxdefault"><br />$this</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">stripe </span><span class="syntaxkeyword">=</span><span class="syntaxdefault">  parent</span><span class="syntaxkeyword">::</span><span class="syntaxdefault">__construct</span><span class="syntaxkeyword">();</span><span class="syntaxdefault"> </span><span class="syntaxcomment">// rend null.<br />&nbsp;</span><span class="syntaxdefault"></span>
    Mais la classe Stripe est bien trouvée ( dans son namespace explicite ou non ), car il est possible de faire : '$this->stripe = new Stripe();' dans StripeFSM.

    Voici le code ci-dessous :

    Comment déclarer le namespace, et lancer Stripe dans StripeFSM ?

    Merci beaucoup.



    PHP:
    <span class="syntaxhtml"><br /><br /><span class="syntaxdefault"><?php<br /><br />namespace Cartalyst</span><span class="syntaxkeyword">\</span><span class="syntaxdefault">Stripe</span><span class="syntaxkeyword">;<br /><br /></span><span class="syntaxcomment">// On affiche toutes les erreurs.<br /></span><span class="syntaxdefault">ini_set</span><span class="syntaxkeyword">(</span><span class="syntaxstring">'display_errors'</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> true</span><span class="syntaxkeyword">);<br /><br /></span><span class="syntaxdefault">error_reporting</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">E_ALL</span><span class="syntaxkeyword">|</span><span class="syntaxdefault">E_STRICT</span><span class="syntaxkeyword">|</span><span class="syntaxdefault">E_DEPRECATED</span><span class="syntaxkeyword">);<br /></span><span class="syntaxcomment">// error_reporting(E_ALL);<br />//error_reporting(0);<br /><br /></span><span class="syntaxdefault">require </span><span class="syntaxkeyword">(</span><span class="syntaxdefault">dirname</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">__FILE__</span><span class="syntaxkeyword">)</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">.</span><span class="syntaxdefault"> </span><span class="syntaxstring">"/../Stripe/vendor/autoload.php"</span><span class="syntaxkeyword">);<br /><br /></span><span class="syntaxdefault">require </span><span class="syntaxkeyword">(</span><span class="syntaxdefault">dirname</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">__FILE__</span><span class="syntaxkeyword">)</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">.</span><span class="syntaxdefault"> </span><span class="syntaxstring">"/../FSM/FSM-master/FSM.php"</span><span class="syntaxkeyword">);<br /><br /></span><span class="syntaxcomment">// require (dirname(__FILE__) . "/../Stripe/src/Stripe.php");<br /><br />// class StripeFSM extends Cartalyst\Stripe\Stripe<br /></span><span class="syntaxdefault">class StripeFSM extends Stripe<br /></span><span class="syntaxcomment">// class StripeFSM<br /></span><span class="syntaxkeyword">{<br /></span><span class="syntaxdefault">    public $stripe    </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> null</span><span class="syntaxkeyword">;<br /><br /></span><span class="syntaxdefault">    public $fsm    </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> null</span><span class="syntaxkeyword">;<br /></span><span class="syntaxdefault">    public $stripe_object </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> null</span><span class="syntaxkeyword">;<br /><br /></span><span class="syntaxdefault">    public $stack    </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> array</span><span class="syntaxkeyword">();<br /><br /></span><span class="syntaxdefault">    public $state    </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> null</span><span class="syntaxkeyword">;<br /><br /></span><span class="syntaxdefault">    public $initial    </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> null</span><span class="syntaxkeyword">;<br /><br /></span><span class="syntaxdefault">    public $events    </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> null</span><span class="syntaxkeyword">;<br /><br /></span><span class="syntaxdefault">    public function __construct</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$StripeObject </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> null</span><span class="syntaxkeyword">)<br /></span><span class="syntaxdefault">    </span><span class="syntaxkeyword">{<br /></span><span class="syntaxdefault">        </span><span class="syntaxcomment">/*<br />         * ApiKey et <br />         * ApiVersion<br />         * dans l'environnement.<br />         */<br />//        $this->stripe =    parent::__construct();<br /></span><span class="syntaxdefault">        $this</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">stripe </span><span class="syntaxkeyword">=</span><span class="syntaxdefault">    new Stripe</span><span class="syntaxkeyword">();<br /><br /></span><span class="syntaxcomment">//        print_r($this->stripe);<br /><br /></span><span class="syntaxdefault">        $this</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">fsm </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> new </span><span class="syntaxkeyword">\</span><span class="syntaxdefault">FSM</span><span class="syntaxkeyword">(</span><span class="syntaxstring">'START'</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> $this</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">stack</span><span class="syntaxkeyword">);<br /><br /></span><span class="syntaxdefault">        $this</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">stripe_object </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> $StripeObject</span><span class="syntaxkeyword">;<br /><br /></span><span class="syntaxdefault">        </span><span class="syntaxcomment">/*<br />         * Definition<br />         * du FSM,<br />         * pour les<br />         * echanges avec<br />         * Stripe.<br />         */<br /></span><span class="syntaxdefault">        $this</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">fsm</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">addTransition</span><span class="syntaxkeyword">(</span><span class="syntaxstring">'FROM_START'</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> </span><span class="syntaxstring">'START'</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> </span><span class="syntaxstring">'PENDING'</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> array</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$this</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> </span><span class="syntaxstring">'StartCallback'</span><span class="syntaxkeyword">));<br /></span><span class="syntaxdefault">        $this</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">fsm</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">addTransition</span><span class="syntaxkeyword">(</span><span class="syntaxstring">'FROM_PENDING'</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> </span><span class="syntaxstring">'PENDING'</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> </span><span class="syntaxstring">'PROCESSING'</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> array</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$this</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> </span><span class="syntaxstring">'PendingCallback'</span><span class="syntaxkeyword">));<br /></span><span class="syntaxdefault">        $this</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">fsm</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">addTransition</span><span class="syntaxkeyword">(</span><span class="syntaxstring">'FROM_PROCESSING'</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> </span><span class="syntaxstring">'PROCESSING'</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> </span><span class="syntaxstring">'FINISHED'</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> array</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$this</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> </span><span class="syntaxstring">'ProcessingCallback'</span><span class="syntaxkeyword">));<br /><br /></span><span class="syntaxdefault">        </span><span class="syntaxcomment">/*<br />         * Fonctions<br />         * d'erreur<br />         * par defaut.<br />         */<br /></span><span class="syntaxdefault">        $this</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">fsm</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">setDefaultTransition</span><span class="syntaxkeyword">(</span><span class="syntaxstring">'START'</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> array</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$this</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> </span><span class="syntaxstring">'StartErrorCallback'</span><span class="syntaxkeyword">));<br /></span><span class="syntaxdefault">        $this</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">fsm</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">setDefaultTransition</span><span class="syntaxkeyword">(</span><span class="syntaxstring">'PENDING'</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> array</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$this</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> </span><span class="syntaxstring">'PendingErrorCallback'</span><span class="syntaxkeyword">));<br /></span><span class="syntaxdefault">        $this</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">fsm</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">setDefaultTransition</span><span class="syntaxkeyword">(</span><span class="syntaxstring">'PROCESING'</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> array</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$this</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> </span><span class="syntaxstring">'ProcessingErrorCallback'</span><span class="syntaxkeyword">));<br /><br /></span><span class="syntaxdefault">        </span><span class="syntaxcomment">/*<br />         * Test<br />         * de fonctionnment<br />         * de la FSM.<br />         */<br /></span><span class="syntaxdefault">        $this</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">fsm</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">process</span><span class="syntaxkeyword">(</span><span class="syntaxstring">'FROM_START'</span><span class="syntaxkeyword">);<br /></span><span class="syntaxdefault">        $this</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">fsm</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">process</span><span class="syntaxkeyword">(</span><span class="syntaxstring">'FROM_PENDING'</span><span class="syntaxkeyword">);<br /></span><span class="syntaxdefault">        $this</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">fsm</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">process</span><span class="syntaxkeyword">(</span><span class="syntaxstring">'FROM_PROCESSING'</span><span class="syntaxkeyword">);<br /></span><span class="syntaxdefault">    </span><span class="syntaxkeyword">}<br /><br /></span><span class="syntaxdefault">    </span><span class="syntaxcomment">/*<br />     * On recoit<br />     * l'event<br />     * d'achat<br />     * d'un abonnement<br />     * ( subscription ),<br />     * on charge<br />     * le customer<br />     * demandeur.<br />     */<br /><br /></span><span class="syntaxdefault">       </span><span class="syntaxcomment">/*<br />        * Faire un<br />        * shema<br />        * pour recevoir<br />        * les events<br />        * et les filtrer<br />        * par types<br />        * et valeurs.<br />        */<br /></span><span class="syntaxdefault">    </span><span class="syntaxcomment">/*<br />     * Fonctions<br />     * de transitions<br />     */<br /></span><span class="syntaxdefault">    function StartCallback</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$symbol</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">&</span><span class="syntaxdefault">$payload</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> $currentState</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> $nextState</span><span class="syntaxkeyword">)<br /></span><span class="syntaxdefault">    </span><span class="syntaxkeyword">{<br /></span><span class="syntaxdefault">        $initial </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> true</span><span class="syntaxkeyword">;<br /><br /></span><span class="syntaxdefault">        echo </span><span class="syntaxstring">"First Transition\n"</span><span class="syntaxkeyword">;<br /><br /></span><span class="syntaxdefault">        $this</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">events </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> $this</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">stripe</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">events</span><span class="syntaxkeyword">()-></span><span class="syntaxdefault">all</span><span class="syntaxkeyword">();<br /><br /></span><span class="syntaxcomment">//        print_r($this->events);<br /><br /></span><span class="syntaxdefault">        foreach </span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$this</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">events</span><span class="syntaxkeyword">[</span><span class="syntaxstring">'data'</span><span class="syntaxkeyword">]</span><span class="syntaxdefault"> as $event</span><span class="syntaxkeyword">)</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">{<br /></span><span class="syntaxdefault">            var_dump</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$event</span><span class="syntaxkeyword">);<br /></span><span class="syntaxdefault">        </span><span class="syntaxkeyword">}<br /></span><span class="syntaxdefault">    </span><span class="syntaxkeyword">}<br /><br /></span><span class="syntaxdefault">    function PendingCallback</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$symbol</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">&</span><span class="syntaxdefault">$payload</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> $currentState</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> $nextState</span><span class="syntaxkeyword">)<br /></span><span class="syntaxdefault">    </span><span class="syntaxkeyword">{<br /></span><span class="syntaxdefault">        echo </span><span class="syntaxstring">"Second Transition\n"</span><span class="syntaxkeyword">;<br /></span><span class="syntaxdefault">    </span><span class="syntaxkeyword">}<br /><br /></span><span class="syntaxdefault">    function ProcessingCallback</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$symbol</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">&</span><span class="syntaxdefault">$payload</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> $currentState</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> $nextState</span><span class="syntaxkeyword">)<br /></span><span class="syntaxdefault">    </span><span class="syntaxkeyword">{<br /></span><span class="syntaxdefault">        echo </span><span class="syntaxstring">"Third Transition\n"</span><span class="syntaxkeyword">;<br /></span><span class="syntaxdefault">    </span><span class="syntaxkeyword">}<br /><br /><br /></span><span class="syntaxdefault">    </span><span class="syntaxcomment">/*<br />     * Fonctions<br />     * d'erreurs.<br />     */<br /></span><span class="syntaxdefault">    function StartErrorCallback</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$symbol</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">&</span><span class="syntaxdefault">$payload</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> $currentState</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> $nextState</span><span class="syntaxkeyword">)<br /></span><span class="syntaxdefault">    </span><span class="syntaxkeyword">{<br /></span><span class="syntaxdefault">        echo </span><span class="syntaxstring">"This symbol does not compute: </span><span class="syntaxdefault">$symbol</span><span class="syntaxstring">\n"</span><span class="syntaxkeyword">;<br /></span><span class="syntaxdefault">    </span><span class="syntaxkeyword">}<br /><br /></span><span class="syntaxdefault">    function PendingErrorCallback</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$symbol</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">&</span><span class="syntaxdefault">$payload</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> $currentState</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> $nextState</span><span class="syntaxkeyword">)<br /></span><span class="syntaxdefault">    </span><span class="syntaxkeyword">{<br /></span><span class="syntaxdefault">        echo </span><span class="syntaxstring">"This symbol does not compute: </span><span class="syntaxdefault">$symbol</span><span class="syntaxstring">\n"</span><span class="syntaxkeyword">;<br /></span><span class="syntaxdefault">    </span><span class="syntaxkeyword">}<br /><br /></span><span class="syntaxdefault">    function ProcessingErrorCallback</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$symbol</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">&</span><span class="syntaxdefault">$payload</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> $currentState</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> $nextState</span><span class="syntaxkeyword">)<br /></span><span class="syntaxdefault">    </span><span class="syntaxkeyword">{<br /></span><span class="syntaxdefault">        echo </span><span class="syntaxstring">"This symbol does not compute: </span><span class="syntaxdefault">$symbol</span><span class="syntaxstring">\n"</span><span class="syntaxkeyword">;<br /></span><span class="syntaxdefault">    </span><span class="syntaxkeyword">}<br />}<br /><br /></span><span class="syntaxdefault">$Sales </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> null</span><span class="syntaxkeyword">;<br /><br /></span><span class="syntaxdefault">$StripeFSM </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> new StripeFSM</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$Sales</span><span class="syntaxkeyword">);<br /><br />exit;<br /><br /></span><span class="syntaxdefault">?><br /></span><br /></span>
     
  2. ortolojf
    ortolojf WRInaute accro
    Inscrit:
    14 Août 2002
    Messages:
    3 129
    J'aime reçus:
    12
    Problème résolu ;)

    Simplification de la prise en compte des variables.

    Cà marche :

    PHP:
    <span class="syntaxhtml"><br /><br /><span class="syntaxdefault"><?php<br /><br /></span><span class="syntaxcomment">// On affiche toutes les erreurs.<br /></span><span class="syntaxdefault">ini_set</span><span class="syntaxkeyword">(</span><span class="syntaxstring">'display_errors'</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> true</span><span class="syntaxkeyword">);<br /><br /></span><span class="syntaxdefault">error_reporting</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">E_ALL</span><span class="syntaxkeyword">|</span><span class="syntaxdefault">E_STRICT</span><span class="syntaxkeyword">|</span><span class="syntaxdefault">E_DEPRECATED</span><span class="syntaxkeyword">);<br /></span><span class="syntaxcomment">// error_reporting(E_ALL);<br />//error_reporting(0);<br /><br /></span><span class="syntaxdefault">require </span><span class="syntaxkeyword">(</span><span class="syntaxdefault">dirname</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">__FILE__</span><span class="syntaxkeyword">)</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">.</span><span class="syntaxdefault"> </span><span class="syntaxstring">"/../Stripe/vendor/autoload.php"</span><span class="syntaxkeyword">);<br /><br /></span><span class="syntaxdefault">require </span><span class="syntaxkeyword">(</span><span class="syntaxdefault">dirname</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">__FILE__</span><span class="syntaxkeyword">)</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">.</span><span class="syntaxdefault"> </span><span class="syntaxstring">"/../FSM/FSM-master/FSM.php"</span><span class="syntaxkeyword">);<br /><br /></span><span class="syntaxcomment">// require (dirname(__FILE__) . "/../Stripe/src/Stripe.php");<br /><br /></span><span class="syntaxdefault">use Cartalyst</span><span class="syntaxkeyword">\</span><span class="syntaxdefault">Stripe</span><span class="syntaxkeyword">\</span><span class="syntaxdefault">Stripe</span><span class="syntaxkeyword">;<br /><br /></span><span class="syntaxdefault">class StripeFSM extends Stripe<br /></span><span class="syntaxkeyword">{<br /></span><span class="syntaxdefault">    public $stripe    </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> null</span><span class="syntaxkeyword">;<br /><br /></span><span class="syntaxdefault">    public $fsm    </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> null</span><span class="syntaxkeyword">;<br /></span><span class="syntaxdefault">    public $stripe_object </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> null</span><span class="syntaxkeyword">;<br /><br /></span><span class="syntaxdefault">    public $stack    </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> array</span><span class="syntaxkeyword">();<br /><br /></span><span class="syntaxdefault">    public $state    </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> null</span><span class="syntaxkeyword">;<br /><br /></span><span class="syntaxdefault">    public $initial    </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> null</span><span class="syntaxkeyword">;<br /><br /></span><span class="syntaxdefault">    public $array_events    </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> null</span><span class="syntaxkeyword">;<br /><br /></span><span class="syntaxdefault">    public function __construct</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$StripeObject </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> null</span><span class="syntaxkeyword">)<br /></span><span class="syntaxdefault">    </span><span class="syntaxkeyword">{<br /></span><span class="syntaxdefault">        </span><span class="syntaxcomment">/*<br />         * ApiKey et <br />         * ApiVersion<br />         * dans l'environnement.<br />         */<br /></span><span class="syntaxdefault">        parent</span><span class="syntaxkeyword">::</span><span class="syntaxdefault">__construct</span><span class="syntaxkeyword">();<br /><br /></span><span class="syntaxdefault">        print_r</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$this</span><span class="syntaxkeyword">);<br /><br /></span><span class="syntaxdefault">        $this</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">fsm </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> new FSM</span><span class="syntaxkeyword">(</span><span class="syntaxstring">'START'</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> $this</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">stack</span><span class="syntaxkeyword">);<br /><br /></span><span class="syntaxdefault">        print_r</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$this</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">fsm</span><span class="syntaxkeyword">);<br /><br /></span><span class="syntaxdefault">        $this</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">stripe_object </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> $StripeObject</span><span class="syntaxkeyword">;<br /><br /></span><span class="syntaxdefault">        </span><span class="syntaxcomment">/*<br />         * Definition<br />         * du FSM,<br />         * pour les<br />         * echanges avec<br />         * Stripe.<br />         */<br /></span><span class="syntaxdefault">        $this</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">fsm</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">addTransition</span><span class="syntaxkeyword">(</span><span class="syntaxstring">'FROM_START'</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> </span><span class="syntaxstring">'START'</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> </span><span class="syntaxstring">'PENDING'</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> array</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$this</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> </span><span class="syntaxstring">'StartCallback'</span><span class="syntaxkeyword">));<br /></span><span class="syntaxdefault">        $this</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">fsm</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">addTransition</span><span class="syntaxkeyword">(</span><span class="syntaxstring">'FROM_PENDING'</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> </span><span class="syntaxstring">'PENDING'</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> </span><span class="syntaxstring">'PROCESSING'</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> array</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$this</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> </span><span class="syntaxstring">'PendingCallback'</span><span class="syntaxkeyword">));<br /></span><span class="syntaxdefault">        $this</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">fsm</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">addTransition</span><span class="syntaxkeyword">(</span><span class="syntaxstring">'FROM_PROCESSING'</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> </span><span class="syntaxstring">'PROCESSING'</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> </span><span class="syntaxstring">'FINISHED'</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> array</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$this</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> </span><span class="syntaxstring">'ProcessingCallback'</span><span class="syntaxkeyword">));<br /><br /></span><span class="syntaxdefault">        </span><span class="syntaxcomment">/*<br />         * Fonctions<br />         * d'erreur<br />         * par defaut.<br />         */<br /></span><span class="syntaxdefault">        $this</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">fsm</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">setDefaultTransition</span><span class="syntaxkeyword">(</span><span class="syntaxstring">'START'</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> array</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$this</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> </span><span class="syntaxstring">'StartErrorCallback'</span><span class="syntaxkeyword">));<br /></span><span class="syntaxdefault">        $this</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">fsm</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">setDefaultTransition</span><span class="syntaxkeyword">(</span><span class="syntaxstring">'PENDING'</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> array</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$this</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> </span><span class="syntaxstring">'PendingErrorCallback'</span><span class="syntaxkeyword">));<br /></span><span class="syntaxdefault">        $this</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">fsm</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">setDefaultTransition</span><span class="syntaxkeyword">(</span><span class="syntaxstring">'PROCESSING'</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> array</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$this</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> </span><span class="syntaxstring">'ProcessingErrorCallback'</span><span class="syntaxkeyword">));<br /><br /></span><span class="syntaxdefault">        </span><span class="syntaxcomment">/*<br />         * Test<br />         * de fonctionnment<br />         * de la FSM.<br />         */<br /></span><span class="syntaxdefault">        $this</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">fsm</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">process</span><span class="syntaxkeyword">(</span><span class="syntaxstring">'FROM_START'</span><span class="syntaxkeyword">);<br /></span><span class="syntaxdefault">        $this</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">fsm</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">process</span><span class="syntaxkeyword">(</span><span class="syntaxstring">'FROM_PENDING'</span><span class="syntaxkeyword">);<br /></span><span class="syntaxdefault">        $this</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">fsm</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">process</span><span class="syntaxkeyword">(</span><span class="syntaxstring">'FROM_PROCESSING'</span><span class="syntaxkeyword">);<br /><br /></span><span class="syntaxdefault">        return</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$this</span><span class="syntaxkeyword">);<br /></span><span class="syntaxdefault">    </span><span class="syntaxkeyword">}<br /><br /></span><span class="syntaxdefault">    </span><span class="syntaxcomment">/*<br />     * On recoit<br />     * l'event<br />     * d'achat<br />     * d'un abonnement<br />     * ( subscription ),<br />     * on charge<br />     * le customer<br />     * demandeur.<br />     */<br /><br /></span><span class="syntaxdefault">       </span><span class="syntaxcomment">/*<br />        * Faire un<br />        * shema<br />        * pour recevoir<br />        * les events<br />        * et les filtrer<br />        * par types<br />        * et valeurs.<br />        */<br /></span><span class="syntaxdefault">    </span><span class="syntaxcomment">/*<br />     * Fonctions<br />     * de transitions<br />     */<br /></span><span class="syntaxdefault">    function StartCallback</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$symbol</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">&</span><span class="syntaxdefault">$payload</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> $currentState</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> $nextState</span><span class="syntaxkeyword">)<br /></span><span class="syntaxdefault">    </span><span class="syntaxkeyword">{<br /></span><span class="syntaxdefault">        $initial </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> true</span><span class="syntaxkeyword">;<br /><br /></span><span class="syntaxdefault">        echo </span><span class="syntaxstring">"First Transition\n"</span><span class="syntaxkeyword">;<br /><br /></span><span class="syntaxdefault">        $this</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">array_events </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> $this</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">events</span><span class="syntaxkeyword">()-></span><span class="syntaxdefault">all</span><span class="syntaxkeyword">();<br /><br /></span><span class="syntaxdefault">        print_r</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$this</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">array_events</span><span class="syntaxkeyword">);<br /><br /></span><span class="syntaxdefault">        foreach </span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$this</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">array_events</span><span class="syntaxkeyword">[</span><span class="syntaxstring">'data'</span><span class="syntaxkeyword">]</span><span class="syntaxdefault"> as $event</span><span class="syntaxkeyword">)</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">{<br /></span><span class="syntaxdefault">            var_dump</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$event</span><span class="syntaxkeyword">);<br /></span><span class="syntaxdefault">        </span><span class="syntaxkeyword">}<br /></span><span class="syntaxdefault">    </span><span class="syntaxkeyword">}<br /><br /></span><span class="syntaxdefault">    function PendingCallback</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$symbol</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">&</span><span class="syntaxdefault">$payload</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> $currentState</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> $nextState</span><span class="syntaxkeyword">)<br /></span><span class="syntaxdefault">    </span><span class="syntaxkeyword">{<br /></span><span class="syntaxdefault">        echo </span><span class="syntaxstring">"Second Transition\n"</span><span class="syntaxkeyword">;<br /></span><span class="syntaxdefault">    </span><span class="syntaxkeyword">}<br /><br /></span><span class="syntaxdefault">    function ProcessingCallback</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$symbol</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">&</span><span class="syntaxdefault">$payload</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> $currentState</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> $nextState</span><span class="syntaxkeyword">)<br /></span><span class="syntaxdefault">    </span><span class="syntaxkeyword">{<br /></span><span class="syntaxdefault">        echo </span><span class="syntaxstring">"Third Transition\n"</span><span class="syntaxkeyword">;<br /></span><span class="syntaxdefault">    </span><span class="syntaxkeyword">}<br /><br /><br /></span><span class="syntaxdefault">    </span><span class="syntaxcomment">/*<br />     * Fonctions<br />     * d'erreurs.<br />     */<br /></span><span class="syntaxdefault">    function StartErrorCallback</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$symbol</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">&</span><span class="syntaxdefault">$payload</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> $currentState</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> $nextState</span><span class="syntaxkeyword">)<br /></span><span class="syntaxdefault">    </span><span class="syntaxkeyword">{<br /></span><span class="syntaxdefault">        echo </span><span class="syntaxstring">"This symbol does not compute: </span><span class="syntaxdefault">$symbol</span><span class="syntaxstring">\n"</span><span class="syntaxkeyword">;<br /></span><span class="syntaxdefault">    </span><span class="syntaxkeyword">}<br /><br /></span><span class="syntaxdefault">    function PendingErrorCallback</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$symbol</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">&</span><span class="syntaxdefault">$payload</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> $currentState</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> $nextState</span><span class="syntaxkeyword">)<br /></span><span class="syntaxdefault">    </span><span class="syntaxkeyword">{<br /></span><span class="syntaxdefault">        echo </span><span class="syntaxstring">"This symbol does not compute: </span><span class="syntaxdefault">$symbol</span><span class="syntaxstring">\n"</span><span class="syntaxkeyword">;<br /></span><span class="syntaxdefault">    </span><span class="syntaxkeyword">}<br /><br /></span><span class="syntaxdefault">    function ProcessingErrorCallback</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$symbol</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">&</span><span class="syntaxdefault">$payload</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> $currentState</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> $nextState</span><span class="syntaxkeyword">)<br /></span><span class="syntaxdefault">    </span><span class="syntaxkeyword">{<br /></span><span class="syntaxdefault">        echo </span><span class="syntaxstring">"This symbol does not compute: </span><span class="syntaxdefault">$symbol</span><span class="syntaxstring">\n"</span><span class="syntaxkeyword">;<br /></span><span class="syntaxdefault">    </span><span class="syntaxkeyword">}<br />}<br /><br /></span><span class="syntaxdefault">$Sales </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> null</span><span class="syntaxkeyword">;<br /><br /></span><span class="syntaxdefault">$StripeFSM </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> new StripeFSM</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$Sales</span><span class="syntaxkeyword">);<br /><br />exit;<br /><br /></span><span class="syntaxdefault">?><br /></span><br /></span>
     
Chargement...
Similar Threads - Problème namespace constructeur Forum Date
Problème de trafic incorrect (plus de 3000€) / RPM à 35€ AdSense Hier à 17:27
Problèmes d'indexations de Google Crawl et indexation Google, sitemaps Lundi à 12:10
Problème d'indexation pour de nombreuses pages Débuter en référencement 10 Octobre 2020
Microdonnées : problème avec product Débuter en référencement 6 Octobre 2020
Probléme de texte gras, code HTML Demandes d'avis et de conseils sur vos sites 5 Octobre 2020
Search Console J'ai un problème : 5 pages indexés et 43 exclues Crawl et indexation Google, sitemaps 2 Octobre 2020
Search Console Problème d'indexations de pages produits Crawl et indexation Google, sitemaps 30 Septembre 2020
Search Console Probleme redirection nom de domaine et indexation google Crawl et indexation Google, sitemaps 16 Septembre 2020
Problème passerelle sur Prestashop e-commerce 8 Septembre 2020
Problème indexation Google desktop/mobile Problèmes de référencement spécifiques à vos sites 3 Septembre 2020