Q: Intelligent IDEs suggestion (IntelliSense)

Help
void
2006-05-22
2013-04-11
  • void
    void
    2006-05-22

    Hi,
    I use an "intelligent IDE": Zend Studio (it suggests the function while you're typing), and I've seen there's a problem with ADOdb-lite, because some functions are dynamically-loaded in "modules", and it seems the driver's ADOConnection version overwrites the methods defined in the modules, so I cannot even add abstract methods (just to have the reference)

    Would you mind to change the order in which the modules are loaded (making them the last to load)?

    I've seen that some methods are available only in the "PEAR version", why is that?  I had to implement my own GetCol method because I couldn't find it.  What's the PEAR version for?

    Also, MetaDatabases, MetaTables, MetaColumns, MetaIndexes, MetaPrimaryKey and MetaForeignKeys for MySQL don't exist (some of them never had even in ADOdb), so I implemented them, let me know if you want to take a look at them --although they may not be "ADOdb/ADOdb-lite style compliant" :p

     
    • Mark Dickenson
      Mark Dickenson
      2006-07-25

      The way the modules are loaded isn't going to change.  The method used is the fastest and uses the least memory.

      If you READ the instruction you will find PEAR is a module just like any of the other modules.  It incorporates the functions that are similar to PEAR database functions.  If you load the PEAR module you would have found the GetCol function is in there.

       
    • i think with the many intelegent ide release this coming year.
      this should come in mind when designing php classes.

      the quickest yet dirty way to enable intellisense is to create abstract classes for each class to describe methods and properties of the class.

      because php is a loose type language.
      one way to enable intelisense is to assign the variable with new instance of this abstract class before operating it as usuall.

      eg.
        if (false) {
          $objCon = new AbstractADOConnection();
        }
        $objCon = ADONewConnection($connString);

      this add no sense in programming logic.
      only to cheat the IDE to think $objCon is an instance of class and make intellisense from that class
      but this will add overhead in live web site if not done properly.