<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Zen-Dreams &#187; php</title>
	<atom:link href="http://www.zen-dreams.com/en/tag/php/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.zen-dreams.com</link>
	<description>Zen-Dreams.com</description>
	<lastBuildDate>Fri, 20 Aug 2010 07:25:25 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>DNA-Framework &#8211; Database Abstraction Layer</title>
		<link>http://www.zen-dreams.com/en/2008/08/30/dna-framework-database-abstraction-layer/</link>
		<comments>http://www.zen-dreams.com/en/2008/08/30/dna-framework-database-abstraction-layer/#comments</comments>
		<pubDate>Sat, 30 Aug 2008 17:41:25 +0000</pubDate>
		<dc:creator>Anthony</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Zen-Dreams]]></category>
		<category><![CDATA[Database]]></category>
		<category><![CDATA[DNA-Framework]]></category>
		<category><![CDATA[OpenSource]]></category>
		<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://www.zen-dreams.com/en/?p=423</guid>
		<description><![CDATA[When I decided to re-write the DNA-Framework, I didn&#8217;t know where to start first. I was thinking about creating all the security structure first, but I then realised that mostly the security infrastructure will use the dabatase to store information. So I first needed to create the DAL. The DAL must stay : easy to [...]]]></description>
			<content:encoded><![CDATA[<p>When I decided to re-write the <strong>DNA-Framework</strong>, I didn&#8217;t know where to start first. I was thinking about creating all the <strong>security structure</strong> first, but I then realised that mostly the security infrastructure will <strong>use the dabatase</strong> to store information.</p>
<p>So I first needed to create the DAL.</p>
<p>The DAL must stay : easy to use, coherent (meaning no differences between different DBMS) and with no useless features.</p>
<p>So the first thing to do was to create a generic class encapsulating every aspect that will be generic enough to be DBMS not specific. This class is <strong>dna.database.class</strong>. It also allowed me to define the behavior and structure of inheriting classes.</p>
<p>Talking about inheritance, for now there are only <strong>four</strong> classes. <strong>MySQL</strong>, <strong>PostgreSQL</strong>, <strong>SQLite</strong> 2 and <strong>Oracle</strong>. Yes this means that the DNA-Framework will have support for all of these systems and probably more when I&#8217;ll create an ODBC class ;)</p>
<p>So, briefly, I started the creation of the class system monday and today, the four classes exists and are able to :</p>
<ul>
<li>Execute SQL queries (anything)</li>
<li>Select and browse through results</li>
<li><strong>Export</strong> as <strong>SQL</strong> or <strong>CSV</strong> result of a query</li>
<li><strong>Import</strong> from <strong>SQL</strong> and <strong>CSV</strong></li>
<li>Fetch various states<strong> (queries / dbms)</strong></li>
</ul>
<h3>Below is an example of the same code executed on 4 different DBMS.</h3>
<p><span id="more-423"></span></p>
<pre>
<h3>MySQL</h3>

SELECT * FROM MS_User
    -&gt; anthony@mysql.com
    -&gt; toto@mysql.com
INSERT INTO MS_User (Email) VALUES ('test@MySQL.com')
SELECT * FROM MS_User
    -&gt; anthony@mysql.com
    -&gt; toto@mysql.com
    -&gt; <strong>test@MySQL.com</strong>
DELETE FROM MS_User WHERE Email='test@MySQL.com'
SELECT * FROM MS_User
    -&gt; anthony@mysql.com
    -&gt; toto@mysql.com
<h3>PostgreSQL</h3>

SELECT * FROM "MS_User"
    -&gt; Anthony@PostgresQL.com
    -&gt; toto@postgresql.com
INSERT INTO "MS_User" ("Email") VALUES ('test@PostgreSQL.com')
SELECT * FROM "MS_User"
    -&gt; Anthony@PostgresQL.com
    -&gt; toto@postgresql.com
    -&gt; <strong>test@PostgreSQL.com</strong>
DELETE FROM "MS_User" WHERE "Email"='test@PostgreSQL.com'
SELECT * FROM "MS_User"
    -&gt; Anthony@PostgresQL.com
    -&gt; toto@postgresql.com
<h3>SQLite</h3>

SELECT * FROM MS_User
    -&gt; anthony@sqlite.org
    -&gt; toto@sqlite.org
INSERT INTO MS_User (Email) VALUES ('test@SQLite.com')
SELECT * FROM MS_User
    -&gt; anthony@sqlite.org
    -&gt; toto@sqlite.org
    -&gt; <strong>test@SQLite.com</strong>
DELETE FROM MS_User WHERE Email='test@SQLite.com'
SELECT * FROM MS_User
    -&gt; anthony@sqlite.org
    -&gt; toto@sqlite.org
<h3>Oracle OCI</h3>

SELECT * FROM MS_User
    -&gt; toto@oracle.com
    -&gt; Anthony@oracle.com
INSERT INTO MS_User (EMAIL) VALUES ('test@Oracle OCI.com')
SELECT * FROM MS_User
    -&gt; toto@oracle.com
    -&gt; Anthony@oracle.com
    -&gt; <strong>test@Oracle OCI.com</strong>
DELETE FROM MS_User WHERE EMAIL='test@Oracle OCI.com'
SELECT * FROM MS_User
    -&gt; toto@oracle.com
    -&gt; Anthony@oracle.com</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.zen-dreams.com/en/2008/08/30/dna-framework-database-abstraction-layer/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Gestionnaire de fichier en ligne</title>
		<link>http://www.zen-dreams.com/en/2008/03/14/gestionnaire-de-fichier-en-ligne/</link>
		<comments>http://www.zen-dreams.com/en/2008/03/14/gestionnaire-de-fichier-en-ligne/#comments</comments>
		<pubDate>Fri, 14 Mar 2008 16:39:38 +0000</pubDate>
		<dc:creator>Anthony</dc:creator>
				<category><![CDATA[Information Technologies]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[Web 2.0]]></category>

		<guid isPermaLink="false">http://zen-dreams.com/fr/2008/03/14/gestionnaire-de-fichier-en-ligne/</guid>
		<description><![CDATA[Depuis déjà fort longtemps j&#8217;utilise des utilitaires de gestion de fichier en ligne. Ces derniers temps, j&#8217;utilise directement le système intégré de 1and1 (mon hébergeur), tout en restant à la recherche DU file manager. Et j&#8217;ai enfin trouvé ! Il s&#8217;agit de PHPfileNavigator. Un outil très complet permettant d&#8217;uploader plusieurs fichier à la fois, editer, [...]]]></description>
			<content:encoded><![CDATA[<p>Depuis déjà fort longtemps j&#8217;utilise des utilitaires de gestion de fichier en ligne. Ces derniers temps, j&#8217;utilise directement le système intégré de <a href="http://www.1and1.fr/?k_id=13358392">1and1</a> (mon hébergeur), tout en restant à la recherche <strong>DU file manager</strong>.<br />
Et j&#8217;ai enfin trouvé !</p>
<p>Il s&#8217;agit de <a href="http://pfn.sourceforge.net/">PHPfileNavigator</a>. Un outil <strong>très complet</strong> permettant d&#8217;uploader <u>plusieurs</u> fichier à la fois, <strong>editer</strong>, supprimer, renommer, <strong>tagguer</strong>, et encore moultes autres fonctions. Un des plus de cet outil est son interface complète et en même temps pas compliquée. De plus, si vous désirez partager l&#8217;accès avec d&#8217;autres utilisateurs, il offre la possibilité justement d&#8217;avoir autant de compte que vous le voulez, avec les droits qui peuvent varier et surtout, un log traçant les opérations effectuées.<br />
En effet, il est possible de définir différentes racines d&#8217;accès, différents users ainsi que leurs groupes.</p>
<p>Toujours est-il que le site de démo disponible me donne vraiment envie de l&#8217;utiliser :)</p>
]]></content:encoded>
			<wfw:commentRss>http://www.zen-dreams.com/en/2008/03/14/gestionnaire-de-fichier-en-ligne/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>
