[Wiki] changed: ChucksHorde4Thoughts

Chuck Hagenbuch <[email protected]>
Newsgroups gmane.comp.horde.cvs
Message-ID <[email protected]>
chuck  Sat, 21 Nov 2009 12:43:13 -0500

Modified page: http://wiki.horde.org/ChucksHorde4Thoughts
New Revision:  1.36
Change log:  we have dependency injection now

@@ -54,62 +54,30 @@



  +++ Developer docs (PHPDoc alternatives)
-
-

  * http://ajaxian.com/archives/beautiful-code-documentation
-
  * http://sphinx.pocoo.org/
-
-
-
-

  ++ Debug support
-
-

  * http://code.google.com/p/webgrind/
-
  *  
http://www.sitepoint.com/blogs/2008/05/13/useful-in-browser-development-tools-for-php/
-
  * http://badapi.trib.tv/
-
  * http://bergie.iki.fi/blog/sql-level_debugging_with_midgard.html
-
  * http://code.google.com/p/formaldehyde/
-
  * Debug "wrapper" drivers - encapsulate another driver and delegate  
all calls, but provide before/after hooks for any function along with  
timing, profiling, reporting of calls and arguments, etc.
-
-
-
-

  ++ URLs
-
-

  * We should sign (with a timestamp and HMAC, per  
Horde::signQueryString) all URLs that perform destructive actions.
-
-
-
-

  ++ Configuration
-
-

  * use Horde_Policy
-
  * Allow conf.d directory styles, like Apache2 config (see  
http://bugs.horde.org/ticket/4747).
-
  * Use return $... in PHP config files to avoid defining local-scope  
variables? (http://www.urdalen.com/blog/?p=257)
-
-
-
-

  ++ Permissions


@@ -192,48 +160,8 @@

  * http://wiki.apache.org/hadoop/ProjectDescription

  * http://code.google.com/p/the-cassandra-project/
-
-
-
-
-
-++ Object instantiation (sometimes known as dependency injection)
-
-
-
-* http://bergie.iki.fi/blog/midcom_3_and_context_injectors.html
-
-* http://www.sitepoint.com/blogs/2008/02/04/dealing-with-dependencies/
-
-* http://usrportage.de/archives/897-Antipattern-the-verbose-constructor.html
-
-*  
http://usrportage.de/archives/904-Antipattern-chaining-stateless-protocol-requests.html
-
-
-
-<code>
-
-horde_ctx::getQueue
-
-$horde-> (no, no global variable)
-
-Horde::$queue (__getStatic?)
-
-Horde::queue() (__callStatic, include extra $args)
-
-Horde_Factory::make(...)
-
-    ::makeQueue() (using __callStatic to introspect)
-
-Horde_Builder
-
-</code>
-
-
-
-

  ++ Idea sources


@@ -2959,177 +2887,5 @@


  // Start from the Nth page of this article list

-$query->setOffset($_REQUEST["startfrom"]);
-
-
-
-// Execute the query returning an array of matching MidgardArticle objects
-
-// The MidgardArticles are the full article objects with all regular methods
-
-$articles = $query->execute();
-
-
-
-if (!$articles)
-
-{
-
-    // Handle error
-
-}
-
-
-
-// And then display your articles
-
-print_r($articles);
-
-?>
-
-
-
-Query Builder in action
-
-Thanks to Jukka's efforts, we have already working MidgardQueryBuilder.
-
-
-
-Let's start with simple example.
-
-
-
-/* Define which MgdSchema type should be used and returned by QB */
-
-$qb = new midgardquerybuilder("NewMidgardArticle");
-
-
-
-/* Define constraints */
-
-$qb->addConstraint("topic", "<", 2);
-
-$qb->addConstraint("title", "=", "News");
-
-
-
-/* Execute SQL query and return array*/
-
-$f = $qb->execute();
-
-
-
-MySQL query executed:
-
-
-
-SELECT article.id FROM article_i,article
-
-WHERE
-
-article.topic < 2 AND article_i.title = 'News'
-
-AND article.id=article_i.sid
-
-
-
-
-
-As you notice, title property is defined in article_i table while  
topic property is defined in article table.
-
-Query Builder follows class' tables definition and is able to search  
for objects which has more than one table as storage.
-
-$qb->execute(); returned array with only one object ( due to record  
returned by SELECT ), so
-
-
-
-print_r($f[0]);
-
-
-
-
-
- NewMidgardArticle Object
-
-        (
-
-             [sitegroup] => 0
-
-            [author] => 0
-
-            [owner] => 0
-
-            [realm] => article
-
-            [guid] => cedda8cb461c9f846c73f043aaf888e9
-
-            [changed] =>
-
-            [updated] =>
-
-            [action] => create
-
-            [errno] => 0
-
-            [errstr] =>
-
-            [id] => 28
-
-            [calstart] => 0000-00-00
-
-
-
-etc etc etc
-
-
-
-Let's try to use datetime fields:
-
-
-
-
-
-$qb = new midgardquerybuilder("NewMidgardArticle");
-
-$qb->addConstraint("revised", ">", "2003-04-30 09:46:00");
-
-$f = $qb->execute();
-
-
-
-MySQL query executed:
-
-
-
-SELECT article.id FROM article_i,article
-
-WHERE
-
-article.revised > '2003-04-30 09:46:00'
-
-AND article.id=article_i.sid
-
-
-
-
-
-Now $qb->execute() returned array with 5 objects. I do not want to
-
-print'em all , so let's look at revised properties if were selected
-
-correctly:
-
-
-
-print_r($f);
-
-
-
-Array(
-
-
-
-    [0] => NewMidgardArticle Object
-
-
+$query->setOffset($_REQUEST["startfrom"


-- 
To unsubscribe, mail: [email protected]
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.