Question

Je cherche une bonne façon d'obtenir autocomplete et cliquez-pour référence (quoi que ce qu'on appelle) pour les bibliothèques CodeIgniter qui travaillent dans Zend Studio for Eclipse.

par exemple, si je fais bibliothèque ( 'dx_auth') $ this-> load->; $ This-> dx_auth-> get_user_id ();

studio zend ne sait pas ce qu'il est ..

Il est ainsi sortof hacky de le faire (voir ci-dessous, la source ) , mais je pense qu'il devrait y avoir une meilleure façon de le faire ..

Quelqu'un a des idées?

// All of these are added so I get real auto complete
// I don't have to worry about it causing any problems with deployment
// as this file never gets called as I'm in PHP5 mode

// Core CI libraries
$config = new CI_Config();
$db = new CI_DB_active_record();
$email = new CI_Email();
$form_validation = new CI_Form_validation();
$input = new CI_Input();
$load = new CI_Loader();
$router = new CI_Router();
$session = new CI_Session();
$table = new CI_Table();
$unit = new CI_Unit_test();
$uri = new CI_URI();
Était-ce utile?

La solution

Ajoutez le chemin de la bibliothèque de CI en tant que chemin d'inclusion à votre projet.

  1. Dans le Explorateur PHP , ouvrez votre projet et faites un clic droit sur Inclure les chemins
  2. Sélectionnez Configurer dans le menu contextuel
  3. Ensuite, dans la boîte de dialogue de chemin inclure, sélectionnez Bibliothèque
  4. Cliquez sur Ajouter un dossier externe ...
  5. Accédez à une copie locale de CI et choisissez son répertoire de la bibliothèque (où il conserve les fichiers de classe)
  6. Cliquez sur Terminé

Voila, là vous allez!

Je note que vous pouvez également définir inclure les chemins au moment de la création du projet.

Autres conseils

La réponse de Pierre indique, l'ajout d'un chemin d'inclusion est sans aucun doute la meilleure façon d'aller. Cependant, cela repose sur les docblocks dans le code source de CI pour être complète, exacte et non ambiguë. Par exemple, si une des méthodes @return est déclarée comme Some_Class|false, l'autocomplétion ne saura pas quoi faire avec elle.

Pour ajouter à la réponse de Pierre, vous pouvez également forcer PDT / Eclipse / ZSfE pour traiter une variable comme une instance d'une classe particulière comme ceci:

/* @var $varName Some_Class_Name */

Si vous avez importé le projet de dire, comme SVN, vous pourriez ne pas avoir le soutien de PHP activé pour ce projet. Vous pouvez l'activer en cliquant droit sur votre projet -> Configurer -> ajouter le support de PHP ...

Testé ZS 7.2.1

J'utilise studio zend 9, c'est-ce que je l'ai fait: Ajouter le chemin de bibliothèque de CI comme un chemin d'inclusion à votre projet.

$this->load->model('my_model');
$my_model = &$this->my_model;
$my_model instanceof my_model;//add this ,zend studio can autocomplete 
$my_model->myfunc($foo,$bar);
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top