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 058
    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 058
    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 déploiement nvlle vezrsion app sur Android Développement d'un site Web ou d'une appli mobile Aujourd'hui à 12:05
Problème organisation Array Développement d'un site Web ou d'une appli mobile Hier à 21:25
Problème migration site vistaprint vers wordpress.com Débuter en référencement 3 Juillet 2020
Problème e-commerce sur GA/GTM Google Analytics 18 Juin 2020
Problème de pages exclues Crawl et indexation Google, sitemaps 10 Juin 2020
Site E-Commerce : Problème Page De Collection Problèmes de référencement spécifiques à vos sites 5 Juin 2020
Problème de coupure en hebergement mutualisé Demandes d'avis et de conseils sur vos sites 30 Mai 2020
Problème htaccess Développement d'un site Web ou d'une appli mobile 26 Mai 2020
Search Console Problème indexation très faible Crawl et indexation Google, sitemaps 19 Mai 2020
Problème de preg_match(). Développement d'un site Web ou d'une appli mobile 15 Mai 2020
  1. Ce site utilise des cookies. En continuant à utiliser ce site, vous acceptez l'utilisation des cookies.
    Rejeter la notice