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 485
    J'aime reçus:
    28
    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 485
    J'aime reçus:
    28
    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èmes avec OVH. Le café de WebRankInfo 8 Octobre 2021
Authentification forte : problème de paiement ? e-commerce 7 Octobre 2021
Multiples problèmes sur GA Google Analytics 28 Septembre 2021
Problème avec tag manager pixel Facebook Référencement Google 25 Septembre 2021
Problème d'indexation Google : que faire ? Crawl et indexation Google, sitemaps 21 Septembre 2021
Problèmes score Rank Math Référencement Google 20 Septembre 2021
Problème avec alternate.fr e-commerce 10 Septembre 2021
GSC : problème de Couverture Rédaction web et référencement 5 Septembre 2021
PHP : problème de comparaison égalité dans boucle FOR avec incrément décimal de 0.1 Développement d'un site Web ou d'une appli mobile 26 Août 2021
Problème de ranking sur une requête cible Demandes d'avis et de conseils sur vos sites 24 Août 2021