<?xml version="1.0" encoding="utf-8" ?>

<rss version="2.0" 
   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
   xmlns:admin="http://webns.net/mvcb/"
   xmlns:dc="http://purl.org/dc/elements/1.1/"
   xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
   xmlns:wfw="http://wellformedweb.org/CommentAPI/"
   xmlns:content="http://purl.org/rss/1.0/modules/content/"
   >
<channel>
    <title>Jonathan Bond-Caron - Ideas &amp; Experiments - PHP</title>
    <link>http://jbondc.openmv.com/</link>
    <description>Jonathan Bond-Caron - Ideas &amp; Experiments</description>
    <dc:language>en</dc:language>
    <generator>Serendipity 1.1.3 - http://www.s9y.org/</generator>
    <pubDate>Thu, 15 Oct 2009 01:14:11 GMT</pubDate>

    <image>
        <url>http://jbondc.openmv.com/templates/mv/img/s9y_banner_small.png</url>
        <title>RSS: Jonathan Bond-Caron - Ideas &amp; Experiments - PHP - Jonathan Bond-Caron - Ideas &amp; Experiments</title>
        <link>http://jbondc.openmv.com/</link>
        <width>100</width>
        <height>21</height>
    </image>

<item>
    <title>Connect PHP5 to SQL Azure</title>
    <link>http://jbondc.openmv.com/archives/20-Connect-PHP5-to-SQL-Azure.html</link>
            <category>FreeBSD</category>
            <category>PHP</category>
    
    <comments>http://jbondc.openmv.com/archives/20-Connect-PHP5-to-SQL-Azure.html#comments</comments>
    <wfw:comment>http://jbondc.openmv.com/wfwcomment.php?cid=20</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://jbondc.openmv.com/rss.php?version=2.0&amp;type=comments&amp;cid=20</wfw:commentRss>
    

    <author>nospam@example.com (Jonathan Bond-Caron)</author>
    <content:encoded>
    With SQL Azure right around the corner (expected to go live in November 2009), I had to evaluate if we could migrate some databases &#039;into the microsoft cloud&#039;. &lt;br /&gt;
&lt;br /&gt;
The pitch from &lt;a href=&quot;http://blogs.msdn.com/ssds/archive/2009/08/18/9874133.aspx&quot;  title=&quot;Blog Post&quot;&gt;Microsoft senior program manager David Robinson&lt;/a&gt; is &quot;With SQL Azure, developers building Web 2.0, ASP.Net and PHP applications can use familiar tools and data models to develop on a pay-as-you-grow, secure, scalable and highly available database service at minimal infrastructure cost,&quot;.&lt;br /&gt;
&lt;br /&gt;
First, there are &lt;a href=&quot;http://msdn.microsoft.com/en-us/library/ee336245.aspx&quot;  title=&quot;SQL Azure limitations&quot;&gt;limitations&lt;/a&gt;, but essentially microsoft is offering a subset of SQL server 2008 running on their infrastructure.&lt;br /&gt;
&lt;br /&gt;
SQL Azure is the first hosted database product with good support for Transact-SQL. This means that any application using nearly standards compliant SQL queries could easily be migrated to use SQL Azure.&lt;br /&gt;
&lt;br /&gt;
For example, using the &lt;a href=&quot;http://www.openmv.com&quot;  title=&quot;OpenMV&quot;&gt;MV framework&lt;/a&gt;, it could be as simple as changing your connection &lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;PostgreSQL:&lt;/strong&gt;&lt;br /&gt;
&lt;code&gt;&lt;br /&gt;
$db = MV_Database_Connection::create(&#039;pgsql://user:pass@localhost/database&#039;);&lt;br /&gt;
&lt;/code&gt;&lt;br /&gt;
&lt;strong&gt;SQL Azure:&lt;/strong&gt;&lt;br /&gt;
&lt;code&gt;&lt;br /&gt;
// Windows&lt;br /&gt;
$db = MV_Database_Connection::create(&#039;odbc_mssql://user:pass@DRIVER=Driver={SQL Server Native Client 10.0};Server=serverName.database.windows.net;Port=1433;Database=database;UID=user@serverName;PWD=pass;&#039;);&lt;br /&gt;
&lt;br /&gt;
// Unix&lt;br /&gt;
$db = MV_Database_Connection::create(&#039;odbc_mssql://user:pass@DRIVER={FreeTDS};Server=serverName.database.windows.net;Port=1433;Database=database;UID=user@serverName;PWD=pass;TDS_Version=8.0;&#039;);&lt;br /&gt;
&lt;/code&gt;&lt;br /&gt;
Since Microsoft has made it relatively easy to connect to SQL Azure from Windows (SQL Server Native Client), this post looks at connecting php5 on unix to SQL Azure. &lt;br /&gt;
&lt;br /&gt;
There are two methods to connect to SQL Azure from UNIX.&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;a) Using mssql_connect()&lt;/strong&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;code&gt;&lt;br /&gt;
// Install php5-mssql&lt;br /&gt;
// Check freetds version, v0.64 compiled with openssl or gnutls works with Azure&lt;br /&gt;
&lt;br /&gt;
[root@dev] $ tsql -C&lt;br /&gt;
Compile-time settings (established with the &quot;configure&quot; script):&lt;br /&gt;
                           Version: freetds v0.64&lt;br /&gt;
    MS db-lib source compatibility: no&lt;br /&gt;
       Sybase binary compatibility: unknown&lt;br /&gt;
                     Thread safety: yes&lt;br /&gt;
                     iconv library: yes&lt;br /&gt;
                       TDS version: 5.0&lt;br /&gt;
                             iODBC: no&lt;br /&gt;
                          unixodbc: yes&lt;br /&gt;
&lt;br /&gt;
// Add .conf entry so you can mssql_connect(&#039;AZURE&#039;, &#039;username&#039;, &#039;password&#039;);&lt;br /&gt;
// http://www.freetds.org/userguide/freetdsconf.htm#FREETDSCONFFORMAT&lt;br /&gt;
&lt;br /&gt;
[root@dev] cat /usr/local/etc/freetds.conf &lt;br /&gt;
dump file = /tmp/freetds.log&lt;br /&gt;
debug level = 10&lt;br /&gt;
[AZURE]&lt;br /&gt;
        host = serverName.database.windows.net&lt;br /&gt;
        port = 1433&lt;br /&gt;
        tds version = 8.0&lt;br /&gt;
        client charset = UTF-8&lt;br /&gt;
&lt;/code&gt;&lt;br /&gt;
&lt;strong&gt;b) Using odbc_connect()&lt;/strong&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;code&gt;&lt;br /&gt;
// Install php5-obdc&lt;br /&gt;
// Check unixODBC version, 2.2.12 works well with PHP&lt;br /&gt;
[root@dev] $ isql --version                             &lt;br /&gt;
unixODBC 2.2.12&lt;br /&gt;
&lt;br /&gt;
// Add the &#039;FreeTDS driver&#039; so that unix obdc can use it&lt;br /&gt;
[root@dev] $ cat /usr/local/etc/odbcinst.ini&lt;br /&gt;
[FreeTDS]&lt;br /&gt;
Description     = v0.64 with protocol v8.0&lt;br /&gt;
Driver          = /usr/local/lib/libtdsodbc.so&lt;br /&gt;
&lt;br /&gt;
// Add dsn entry that obdc can use, point to FreeTDS name...&lt;br /&gt;
// http://www.freetds.org/userguide/odbcconnattr.htm&lt;br /&gt;
[root@dev] $ cat /usr/local/etc/odbc.ini&lt;br /&gt;
[TestServer]&lt;br /&gt;
Driver          = FreeTDS&lt;br /&gt;
Description     = Azure test with FreeTDS&lt;br /&gt;
ServerName      = AZURE&lt;br /&gt;
Database        = gol&lt;br /&gt;
&lt;/code&gt;&lt;br /&gt;
Once your unix server is properly configured, you can go ahead and test php connections.&lt;br /&gt;
&lt;br /&gt;
&lt;code&gt;&lt;br /&gt;
// SQL Azure supports tabular data stream (TDS) protocol client version 7.3 or later&lt;br /&gt;
// @see http://msdn.microsoft.com/en-us/library/ee336245.aspx&lt;br /&gt;
&lt;br /&gt;
// On unix, we can connect using open-source FreeTDS (http://www.freetds.org/).&lt;br /&gt;
// Replace XXX with your database information.&lt;br /&gt;
$serverName = &#039;XXXXXXXXXX&#039;;&lt;br /&gt;
$user = &#039;XXX@&#039; . $serverName;&lt;br /&gt;
$pass = &#039;XXXXXX&#039;;&lt;br /&gt;
&lt;br /&gt;
if(function_exists(&#039;mssql_connect&#039;)) {&lt;br /&gt;
	// Using DSN name &#039;AZURE&#039; (specified in /usr/local/etc/freetds.conf)&lt;br /&gt;
	$c = mssql_connect(&#039;AZURE&#039;, $user, $pass);&lt;br /&gt;
	echo &quot;mssql_connect(&#039;AZURE&#039;, $user, $pass): &quot;. ($c ? &#039;Success&#039; : &#039;Error&#039;) . &quot;&lt;br /&gt;&quot;;&lt;br /&gt;
	mssql_close($c);&lt;br /&gt;
	sleep(1);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
if(function_exists(&#039;odbc_connect&#039;)) {&lt;br /&gt;
&lt;br /&gt;
	// All examples require entry in /usr/local/etc/odbcinst.ini:&lt;br /&gt;
	// [FreeTDS]  &lt;br /&gt;
	// Driver          = /usr/local/lib/libtdsodbc.so&lt;br /&gt;
&lt;br /&gt;
	// Using DSN name &#039;TestServer&#039; (specified in /usr/local/etc/odbc.ini)&lt;br /&gt;
	$c = odbc_connect(&#039;TestServer&#039;, $user, $pass);&lt;br /&gt;
	echo &quot;odbc_connect(&#039;TestServer&#039;, $user, $pass): &quot;. ($c ? &#039;Success&#039; : &#039;Error&#039;) . &quot;&lt;br /&gt;&quot;;&lt;br /&gt;
	odbc_close($c);&lt;br /&gt;
	sleep(1);&lt;br /&gt;
&lt;br /&gt;
	// Using DSN name &#039;$serverName&#039; (specified in /usr/local/etc/freetds.conf)&lt;br /&gt;
	$dsn = &quot;DRIVER={FreeTDS};ServerName=$serverName;UID=$user;PWD=$pass;Database=test;&quot;;&lt;br /&gt;
	$c = odbc_connect($dsn, $user, $pass);&lt;br /&gt;
	echo &quot;odbc_connect($dsn, $user, $pass): &quot;. ($c ? &#039;Success&#039; : &#039;Error&#039; ) . &quot;&lt;br /&gt;&quot;;&lt;br /&gt;
	odbc_close($c);&lt;br /&gt;
	sleep(1);&lt;br /&gt;
	&lt;br /&gt;
	// DSN-less connection (more portable / recommended)&lt;br /&gt;
	$dsn = &quot;DRIVER={FreeTDS};Server=$serverName.database.windows.net;Port=1433;Database=test;UID=$user;PWD=$pass;TDS_Version=8.0&quot;;&lt;br /&gt;
	$c = odbc_connect($dsn, $user, $pass);&lt;br /&gt;
	echo &quot;odbc_connect($dsn, $user, $pass): &quot;. ($c ? &#039;Success&#039; : &#039;Error&#039;) . &quot;&lt;br /&gt;&quot;;&lt;br /&gt;
	odbc_close($c);&lt;br /&gt;
	sleep(1);&lt;br /&gt;
	&lt;br /&gt;
	// **Note: Driver= must be uppercase!? Find out where the bug comes from!&lt;br /&gt;
	// $dsn=&quot;Driver={FreeTDS};ServerName=AZURE;Database=gol;UID=$user;PWD=$pass;&quot;;&lt;br /&gt;
}&lt;br /&gt;
&lt;/code&gt;&lt;br /&gt;
If all went well, you should see &#039;Success&#039; everywhere. &lt;br /&gt;
&lt;br /&gt;
Be sure to check the version of FreeTDS and unixODBC you are using! If you run into bugs with these tools, well report them or write a patch!&lt;br /&gt;
&lt;br /&gt;
My conclusion, although FreeTDS works, it is not enterprise ready and needs some corporate backing. Naturally, this brings the question, &lt;a href=&quot;http://www.phpclasses.org/blog/post/85-What-is-Microsoft-up-to-with-PHP.html&quot; &gt;what Microsoft is up to&lt;/a&gt;?&lt;br /&gt;
&lt;br /&gt;
 
    </content:encoded>

    <pubDate>Wed, 14 Oct 2009 19:34:53 -0400</pubDate>
    <guid isPermaLink="false">http://jbondc.openmv.com/archives/20-guid.html</guid>
    
</item>
<item>
    <title>GAE &amp; PHP</title>
    <link>http://jbondc.openmv.com/archives/19-GAE-PHP.html</link>
            <category>PHP</category>
    
    <comments>http://jbondc.openmv.com/archives/19-GAE-PHP.html#comments</comments>
    <wfw:comment>http://jbondc.openmv.com/wfwcomment.php?cid=19</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://jbondc.openmv.com/rss.php?version=2.0&amp;type=comments&amp;cid=19</wfw:commentRss>
    

    <author>nospam@example.com (Jonathan Bond-Caron)</author>
    <content:encoded>
    There&#039;s a really easy way to get PHP running on Google&#039;s app engine, see this great link:&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;http://www.webdigi.co.uk/blog/2009/run-php-on-the-google-app-engine/&quot;  title=&quot;PHP setup on GAE&quot;&gt;http://www.webdigi.co.uk/blog/2009/run-php-on-the-google-app-engine/&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
In short, it works by using &#039;Quercus&#039; which likely takes the php scripts, transforms and compiles into java bytecode that gets run in the JVM. Don&#039;t understand all that? No problem, the important note it is seems to work well. &lt;br /&gt;
&lt;br /&gt;
So far I&#039;ve tested two pieces of code:&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;Memcache&lt;/strong&gt;&lt;br /&gt;
&lt;code&gt;&lt;br /&gt;
&lt;?php&lt;br /&gt;
import com.google.appengine.api.memcache.MemcacheService;&lt;br /&gt;
import com.google.appengine.api.memcache.MemcacheServiceFactory;&lt;br /&gt;
import com.google.appengine.api.memcache.Expiration;&lt;br /&gt;
&lt;br /&gt;
$service = MemcacheServiceFactory::getMemcacheService();&lt;br /&gt;
&lt;br /&gt;
$expiration = Expiration::byDeltaSeconds(60);&lt;br /&gt;
&lt;br /&gt;
echo &#039;MEMCACHE::get(): &#039; . $service-&gt;get(&quot;key1&quot;) . &quot;&lt;br /&gt;&quot;;&lt;br /&gt;
&lt;br /&gt;
$service-&gt;put(&quot;key1&quot;, &quot;hello&quot;, $expiration);&lt;br /&gt;
&lt;br /&gt;
echo &#039;MEMCACHE::get(): &#039; . $service-&gt;get(&quot;key1&quot;) . &quot;&lt;br /&gt;&quot;;&lt;br /&gt;
?&gt;&lt;br /&gt;
&lt;/code&gt;&lt;br /&gt;
&lt;br /&gt;
Works great.&lt;br /&gt;
&lt;br /&gt;
Now, probably the most important reason to use App Engine? Access to your very own google database! Running scalable web services just got a whole lot easier.  &lt;br /&gt;
&lt;br /&gt;
The bad news is there&#039;s no good interface or classes yet with php, so you have to go through using google&#039;s &#039;raw&#039; datastore API.&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;Datastore&lt;/strong&gt;&lt;br /&gt;
&lt;code&gt;&lt;br /&gt;
&lt;?php&lt;br /&gt;
import com.google.appengine.api.datastore;&lt;br /&gt;
import com.google.appengine.api.datastore.Entity;&lt;br /&gt;
import com.google.appengine.api.datastore.DatastoreServiceFactory;&lt;br /&gt;
&lt;br /&gt;
$data = array(&#039;test&#039; =&gt; 1, &lt;br /&gt;
			 &#039;test2&#039; =&gt; 2);&lt;br /&gt;
	&lt;br /&gt;
$entity = new Entity(&quot;MV_Storage_Php&quot;); &lt;br /&gt;
$entity-&gt;setProperty(&quot;value&quot;, serialize($data));&lt;br /&gt;
&lt;br /&gt;
echo &quot;KEY: &quot;. (string)$entity-&gt;getKey(); // ok - unknown&lt;br /&gt;
echo &quot;VALUE: &quot;. (string)$entity-&gt;getProperty(&quot;value&quot;); // ok&lt;br /&gt;
&lt;br /&gt;
$dataService = DatastoreServiceFactory::getDatastoreService();&lt;br /&gt;
&lt;br /&gt;
foreach($dataService-&gt;getActiveTransactions() as $t) {&lt;br /&gt;
	echo &quot;TRANS: &quot;. $t-&gt;getId(); // none&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
$dataService-&gt;put($entity); // throws NULL exception!?&lt;br /&gt;
&lt;br /&gt;
echo $entity-&gt;getKey();&lt;br /&gt;
?&gt;&lt;br /&gt;
&lt;/code&gt;&lt;br /&gt;
&lt;br /&gt;
Unfortunately, it throws a NULL exception. So aside from the quirks, it looks promising.  &lt;br /&gt;
&lt;br /&gt;
The Datastore API is documented &lt;a href=&quot;http://code.google.com/appengine/docs/java/javadoc/com/google/appengine/api/datastore/package-summary.html&quot;  title=&quot;Datastore API&quot;&gt;here&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
 
    </content:encoded>

    <pubDate>Thu, 16 Apr 2009 15:12:38 -0400</pubDate>
    <guid isPermaLink="false">http://jbondc.openmv.com/archives/19-guid.html</guid>
    
</item>
<item>
    <title>PHP LINQ?</title>
    <link>http://jbondc.openmv.com/archives/12-PHP-LINQ.html</link>
            <category>PHP</category>
    
    <comments>http://jbondc.openmv.com/archives/12-PHP-LINQ.html#comments</comments>
    <wfw:comment>http://jbondc.openmv.com/wfwcomment.php?cid=12</wfw:comment>

    <slash:comments>1</slash:comments>
    <wfw:commentRss>http://jbondc.openmv.com/rss.php?version=2.0&amp;type=comments&amp;cid=12</wfw:commentRss>
    

    <author>nospam@example.com (Jonathan Bond-Caron)</author>
    <content:encoded>
    When it comes to writing Web applications, a developer often needs to access data from a multitude of data sources. The result is often a lot of spaghetti code that iterates and filters  the results (XML, csv, soap, REST services, and so on).  &lt;br /&gt;
&lt;br /&gt;
But the most common data that&#039;s accessed is in a relational database. Luckily, at some point database vendors agreed on SQL (standard query language) which is a common way to access /query data from a database. &lt;br /&gt;
&lt;br /&gt;
With the reality of the Web, wouldn&#039;t it be nice to have some form of standard query language to access many forms of data?? That&#039;s what Microsoft&#039;s &lt;a href=&quot;http://en.wikipedia.org/wiki/Language_Integrated_Query&quot; title=&quot;LINQ&quot;&gt;LINQ &lt;/a&gt; attempts to offer. &lt;br /&gt;
&lt;br /&gt;
It&#039;s a great innovation and I was curious about what a PHP API could look like and it turns out there&#039;s a good discussion here:&lt;br /&gt;
&lt;a href=&quot;http://www.mikeborozdin.com/post/Is-PHPLinq-As-Cool-As-Real-LINQ.aspx&quot; &gt;http://www.mikeborozdin.com/post/Is-PHPLinq-As-Cool-As-Real-LINQ.aspx&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
The advantage of LINQ in .NET is how the LINQ expressions can be evaluated and compiled. In short, it takes the expressions (&quot;pretty&quot; code) and builds the &quot;spaghetti code that iterates and filters  the results&quot; automatically. If the compiler is smart and can make proper machine level optimizations, I would guess it means very fast execution and a standard way of accessing data. Amazing!&lt;br /&gt;
&lt;br /&gt;
As for PHP, &lt;a href=&quot;http://blog.maartenballiauw.be/&quot; &gt;Maarten Balliauw&lt;/a&gt; still went ahead and created a PHP implementation of LINQ:&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;http://www.codeplex.com/PHPLinq/Release/ProjectReleases.aspx?ReleaseId=10084&quot;  title=&quot;PHPLinq Release&quot;&gt;http://www.codeplex.com/PHPLinq/Release/ProjectReleases.aspx?ReleaseId=10084&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
It&#039;s definetly &quot;interesting&quot; at this point and if PHP could support natively some form of LINQ, it would be a major achievement and very cool stuff.&lt;br /&gt;
&lt;br /&gt;
There&#039;s also a java version of &quot;LINQ&quot; (Quaere):&lt;br /&gt;
&lt;a href=&quot;http://www.theserverside.com/news/thread.tss?thread_id=46887&quot;  title=&quot;Quaere&quot;&gt;http://www.theserverside.com/news/thread.tss?thread_id=46887 &lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
 
    </content:encoded>

    <pubDate>Thu, 24 Jul 2008 14:49:11 -0400</pubDate>
    <guid isPermaLink="false">http://jbondc.openmv.com/archives/12-guid.html</guid>
    
</item>
<item>
    <title>Short PHP array synthax</title>
    <link>http://jbondc.openmv.com/archives/10-Short-PHP-array-synthax.html</link>
            <category>PHP</category>
    
    <comments>http://jbondc.openmv.com/archives/10-Short-PHP-array-synthax.html#comments</comments>
    <wfw:comment>http://jbondc.openmv.com/wfwcomment.php?cid=10</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://jbondc.openmv.com/rss.php?version=2.0&amp;type=comments&amp;cid=10</wfw:commentRss>
    

    <author>nospam@example.com (Jonathan Bond-Caron)</author>
    <content:encoded>
    There&#039;s an RFC that has been recently declined through the PHP internals list. It is a minor change/patch to introduces a short synthax to declare arrays in PHP.&lt;br /&gt;
&lt;br /&gt;
To declare an array in PHP, you currently use the following synthax: &lt;br /&gt;
&lt;code&gt;&lt;br /&gt;
$a = array(&#039;foo&#039; =&gt; &#039;bar&#039;, &#039;nestarray&#039; =&gt; array(0, 1, 5));&lt;br /&gt;
&lt;/code&gt;  &lt;br /&gt;
&lt;br /&gt;
The proposed patch (a few lines) would allow to declare arrays in a shorter form:&lt;br /&gt;
&lt;code&gt;&lt;br /&gt;
$a = array(&#039;foo&#039; =&gt; &#039;bar&#039;, &#039;nestarray&#039; =&gt; array(0, 1, 5));&lt;br /&gt;
&lt;br /&gt;
// New synthax&lt;br /&gt;
$a = [&#039;foo&#039;=&gt; &#039;bar&#039;, &#039;nestarray&#039;=&gt; [0, 1, 5]];&lt;br /&gt;
// Or&lt;br /&gt;
$a = [&#039;foo&#039;: &#039;bar&#039;, &#039;nestarray&#039;: [0, 1, 5]];&lt;br /&gt;
&lt;/code&gt;  &lt;br /&gt;
&lt;br /&gt;
This notation is used by many programming languages, most notably javascript. Since PHP is essentially a programming language used &lt;strong&gt;for&lt;/strong&gt; the Web, my opinion is it makes perfect sense to support a javascript-like notation for arrays.&lt;br /&gt;
&lt;br /&gt;
There&#039;s some resistance from the core developers and overall there were too many veto (negative) votes. I definitely understand their concern but feel it&#039;s a natural evolution of the language, this to me seems like something most &lt;strong&gt;users&lt;/strong&gt; would want to see in PHP. &lt;br /&gt;
&lt;br /&gt;
Hopefully, the PHP community can speak out enough to get better idea of what the users / php community wants. &lt;br /&gt;
&lt;br /&gt;
The actual proposal and more info at:&lt;br /&gt; &lt;a href=&quot;http://wiki.php.net/rfc/shortsyntaxforarrays&quot;  title=&quot;RFC - Short Array Synthax&quot;&gt;http://wiki.php.net/rfc/shortsyntaxforarrays&lt;/a&gt;. 
    </content:encoded>

    <pubDate>Fri, 30 May 2008 12:31:03 -0400</pubDate>
    <guid isPermaLink="false">http://jbondc.openmv.com/archives/10-guid.html</guid>
    
</item>

</channel>
</rss>