web-dev-qa-db-fra.com

PHP: comment inclure une classe

J'ai index.php et je veux inclure class.Twitter.php à l'intérieur, comment faire?

J'espère que lorsque je mettrai le code ci-dessous dans index.php, cela fonctionnera.

$t = new Twitter();
$t->username = 'user';
$t->password = 'password';

$data = $t->publicTimeline();
25
CLiown

Votre code devrait ressembler à quelque chose

require_once('class.Twitter.php');

$t = new Twitter;
$t->username = 'user';
$t->password = 'password';

$data = $t->publicTimeline();
30
Mez

Vous pouvez utiliser l'une des méthodes suivantes:

include "class.Twitter.php";

ou

require "class.Twitter.php";

Utilisation de require (ou require_once si vous voulez vous assurer que la classe n'est chargée qu'une seule fois pendant l'exécution) provoquera une erreur fatale si le fichier n'existe pas, tandis que include ne déclenchera qu'un avertissement. Voir http://php.net/require et http://php.net/include pour plus de détails

14
richsage

Incluez un exemple de classe avec le mot clé use de l'interface de ligne de commande:

Les espaces de noms PHP ne fonctionnent pas sur la ligne de commande, sauf si vous incluez ou exigez également le fichier php. Lorsque le fichier php se trouve dans l'espace Web où il est interprété par le démon php, vous n'avez pas besoin de la ligne requise. Tout ce dont vous avez besoin est la ligne "use".

  1. Créez un nouveau répertoire /home/el/bin

  2. Créez un nouveau fichier appelé namespace_example.php et y mettre ce code:

    <?php
        require '/home/el/bin/mylib.php';
        use foobarwhatever\dingdong\penguinclass;
    
        $mypenguin = new penguinclass();
        echo $mypenguin->msg();
    ?>
    
  3. Créez un autre fichier appelé mylib.php et y mettre ce code:

    <?php
    namespace foobarwhatever\dingdong;
    class penguinclass 
    {
        public function msg() {
            return "It's a beautiful day chris, come out and play! " . 
                   "NO!  *SLAM!*  taka taka taka taka."; 
        }   
    }
    ?>   
    
  4. Exécutez-le à partir de la ligne de commande comme ceci:

    el@apollo:~/bin$ php namespace_example.php 
    
  5. Qui imprime:

    It's a beautiful day chris, come out and play!
    NO!  *SLAM!*  taka taka taka taka
    

Voir les notes à ce sujet dans les commentaires ici: http://php.net/manual/en/language.namespaces.importing.php

9
Eric Leschinski

Je vous suggère également de consulter __ autoload .
Cela nettoiera le code de require et includes.

6
AntonioCS
  1. require('/yourpath/yourphp.php');

    http://php.net/manual/en/function.require.php

  2. require_once('/yourpath/yourphp.php');

    http://php.net/manual/en/function.require-once.php

  3. include '/yourpath/yourphp.php';

    http://www.php.net/manual/en/function.include.php

  4. use \Yourapp\Yourname

    http://php.net/manual/fa/language.namespaces.importing.php

Remarques:

Évitez d'utiliser require_once car il est lent: Pourquoi est-ce que require_once est si mauvais à utiliser?

3
peter p
1
Jimmy Shelter