Zend Studio 6 and code completion problems

Login or register to post comments
No replies
Offline
Joined: 02/28/2011

Hello again to everyone,

I am not sure if this question belongs here, but some people might have an idea of what is going on and others might find some answers.

The problem is that in Zend Studio 6 (I don't know what is happening in other versions) qcubed code completion is problematic.

The same subject was also discussed in an old qcodo forum thread that might be of interest:
http://www.qcodo.com/forums/forum.php/2/1375/

Now, there are various aspects to the problem:

1. First the code completion does not work when someone tries to do multiple dereferencing, namely:
$this-> (code completion works)
$this->txtLastName-> (code completion DOES NOT work)

The reason (and the solution) to this is:
in formbase_classes_generated the generated files DO NOT HAVE COMMENTS that enable auto-completion in Zend like

<?php
       
/**
         * @var QTextBox txtLastName
         * @access protected
         */
?>

while the meta controls creation files DO HAVE
If you put comments in formbase_classes_generated files then code completion works !
We must probably edit the code gen template files
[Again who is in charge of contributions ? Alex ? ]

2. Now the second part is VERY weird!
PROBLEM: Code completion does not work for PROPERTIES of QControlBase class and all its children (like QTextBox).
This means that code completion shows methods but not properties for this class and its descendants.

For another class (e.g. $this which is a QForm class) it shows BOTH the methods and the properties BUT the properties are WRONG ! Meaning they are NOT what is defined in the class comments

<?php
   
/**
     * @package Controls
     *
     * @property-read string $FormId
     * @property-read string $CallType
     * @property-read string $DefaultWaitIcon
     * @property-read integer $FormStatus
     * @property string $HtmlIncludeFilePath
     * @property string $CssClass
     */
   
abstract class QFormBase extends QBaseClass {
       
///////////////////////////
        // Protected Member Variables
        ///////////////////////////
       
protected $strFormId;
        protected
$intFormStatus;
        protected
$objControlArray;
        protected
$objPersistentControlArray = array();
        protected
$objGroupingArray;
        protected
$blnRenderedBodyTag = false;
        protected
$blnRenderedCheckableControlArray;
        protected
$strCallType;
        protected
$objDefaultWaitIcon = null;
?>

but the code completion shows the actual protected variables not the virtual ones

I do not even have the slightest idea where it reads the real ones from.

It also looks like Zend Studio does not understand @property comments at all !

Any ideas ?

Many thanks to all