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 258
    J'aime reçus:
    23
    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 258
    J'aime reçus:
    23
    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 pages non référencées Problèmes de référencement spécifiques à vos sites Samedi à 19:27
WordPress Problème de balises "Google Analytics" Google Analytics 18 Février 2021
Problème achats indirects Amazon Monétisation d'un site web 18 Février 2021
Problème changement hebergeur Administration d'un site Web 15 Février 2021
Problème page d'accueil dupliquée avec /index.html Débuter en référencement 10 Février 2021
Problème de fonctions synchrone/asynchrone Développement d'un site Web ou d'une appli mobile 24 Janvier 2021
URL canonique et problème entre / et /index.php Débuter en référencement 20 Janvier 2021
Problème avec Yoast SEO Débuter en référencement 13 Janvier 2021
Problèmes de trafic incorrect Annonces Limités AdSense 2 Janvier 2021
problème indexation Crawl et indexation Google, sitemaps 25 Décembre 2020