<?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>IMS Blog - blog o modernom programovaní od Tibor Piňo &#187; socket</title>
	<atom:link href="http://ims.rockretail.com/tag/socket/feed/" rel="self" type="application/rss+xml" />
	<link>http://ims.rockretail.com</link>
	<description>Just another WordPress weblog</description>
	<lastBuildDate>Thu, 18 Feb 2010 10:11:04 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Pripojujeme sa k databáze</title>
		<link>http://ims.rockretail.com/2008/03/26/pripojujeme-sa-k-databaze/</link>
		<comments>http://ims.rockretail.com/2008/03/26/pripojujeme-sa-k-databaze/#comments</comments>
		<pubDate>Wed, 26 Mar 2008 09:57:12 +0000</pubDate>
		<dc:creator>Tibor Piňo</dc:creator>
				<category><![CDATA[Tipy a triky]]></category>
		<category><![CDATA[CakePHP]]></category>
		<category><![CDATA[databáza]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[socket]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[V tomto článku si ukážeme pokročilú prácu s pripojením k databáze v CakePHP. Ukážeme si, ako sa pripojiť cez socket alebo ako si nakonfigurovať niekoľko databázových pripojení a následne ich používať.
Definujeme pripojenie k databáze
Databázové spojenie sa v CakePHP definuje v súbore app/config/da­tabase.php. Po rozbalení balíku s inštaláciou Cake treba najprv daný súbor premenovať a to [...]]]></description>
			<content:encoded><![CDATA[<p>V tomto článku si ukážeme pokročilú prácu s pripojením k databáze v CakePHP. Ukážeme si, ako sa pripojiť cez socket alebo ako si nakonfigurovať niekoľko databázových pripojení a následne ich používať.<span id="more-33"></span></p>
<h2>Definujeme pripojenie k databáze</h2>
<p>Databázové spojenie sa v CakePHP definuje v súbore <em>app/config/da­tabase.php</em>. Po rozbalení balíku s inštaláciou Cake treba najprv daný súbor premenovať a to z <em>app/config/da­tabase.php.de­fault</em> na spomínaný názov <em>app/config/da­tabase.php</em>. Po otvorení daného súboru máme k dispozícii preddefinované 2 pripojenia a to <em>default</em> a <em>test</em></p>
<pre><code>class DATABASE_CONFIG {
        var $default = array(
                'driver' =&gt; 'mysql',
                'persistent' =&gt; false,
                'host' =&gt; 'localhost',
                'port' =&gt; '',
                'login' =&gt; 'user',
                'password' =&gt; 'password',
                'database' =&gt; 'database_name',
                'schema' =&gt; '',
                'prefix' =&gt; '',
                'encoding' =&gt; ''
        );
        var $test = array(
                'driver' =&gt; 'mysql',
                'persistent' =&gt; false,
                'host' =&gt; 'localhost',
                'port' =&gt; '',
                'login' =&gt; 'user',
                'password' =&gt; 'password',
                'database' =&gt; 'test_database_name',
                'schema' =&gt; '',
                'prefix' =&gt; '',
                'encoding' =&gt; ''
        );
}
?&gt;</code></pre>
<p>Poďme si priblížiť základné konfiguračné možnosti.</p>
<p><em>driver</em> → umožňuje zadať k akému typu databáze sa ideme pripájať. Podporované sú typy mysql, mysqli, sqlite, postgres , mssql, db2, oracle, adodb-[drivername], pear-[drivername].</p>
<p><em>host</em> → adresa databázového servera.</p>
<p><em>port</em> → určuju port, cez ktorý sa môžeme k databáze pripojiť.</p>
<p><em>prefix</em> → umožňuje určiť prefix v názvoch tabuliek v databáze. Využitie nájdeme v prípade, že v jednej databáze máme niekoľko projektov a jednotlivé tabuľky daných projektov by sme chceli od seba jednoznačne odlíšiť daným prefixom.</p>
<p><em>encoding</em> → umožňuje nastaviť kódovanie spojenia k vašej databáze.</p>
<p>Ako môžeme vidieť, Cake podporuje pripojenie k najpoužívanejším databázovým systémom v súčasnosti. Ak by sa však v danom zozname typ nášho databázového systému nenachádzal, môžeme si vytvoriť vlastný driver alebo prepísať existujúci. Urobíme to jednoducho vytvorením súboru v <em>app/models/da­tasources/dbo</em> a pomenovaním daného súboru <em>dbo_x.php</em>, kde <em>x</em> je názov nášho databázového systému.</p>
<h2>Používame databázové pripojenia</h2>
<p>Ako môžeme vidieť, v našom súbore <em>app/config/da­tabase.php</em> máme definované 2 pripojenia a to <em>default</em> a <em>test</em>. Cake nám umožňuje jednoducho prepínať medzi týmito pripojeniami a tým určovať, aké pripojenie má naša aplikácia alebo konkrétny model používať. Táto vlastnosť CakePHP nám môže značne uľahčiť prácu a to najmä v prípade, ak testujeme našu web aplikáciu na localhoste a zároveň aj priamo na nejakom webhostingu. Taktiež nám môže byť veľmi nápomocná v prípade, ak by sme chceli určiť, že niektorý model bude získavať dáta z inej databáze ako zvyšné modely.</p>
<p>Poďme si to ukázať na príklade. Našej aplikácii chceme určiť, aby používala pripojenie nazvané <em>test</em>, ktoré sme definovali v súbore <em>app/config/da­tabase.php</em>. Do súboru <em>app/app_model.php</em> umiestníme nasledovné</p>
<pre><code>class AppModel extends Model{
        var $useDbConfig = 'test';
}</code></pre>
<p>Týmto sme našej aplikácii určili, že všetky modely sa budú pripájať k databáze prostredníctvom pripojenia nazvaného <em>test</em>. Teraz si predstavme situáciu, že chceme zmeniť pripojenie iba pre konkrétny model. V tomto prípade nám stačí pripojenie definovať iba v našom konkrétnom modely</p>
<pre><code>class MyModel extends Model{
        var $useDbConfig = 'test2';
}</code></pre>
<p>Týmto sme určili, že model s názvom <em>MyModel</em> sa bude pripájať k databáze prostredníctvom pripojenia nazvaného <em>test2</em>.</p>
<p>Ešte by som poznamenal, že ak máme definované pripojenie s názvom <em>default</em> a našej aplikácii explicitne neurčíme, že máme používať iné pripojenie, Cake automaticky pre pripojenie k databáze vyberie pripojenie nazvané <em>default</em>.</p>
<h2>Pripájame sa cez socket</h2>
<p>V súčasnosti množstvo webhostingov umožňuje pripojenie k vašej databáze prostredníctvom tzv. socketu. Riešenie v Cake je veľmi jednoduché. Predstavme si, že sa k našej databáze chceme pripojiť cez socket, ku ktorému vedie takáto cesta <em>/tmp/mysql50.soc­k</em>. Do súboru <em>app/config/da­tabase.php</em> následne umiestníme</p>
<pre><code>var $default = array(
                'driver' =&gt; 'mysql',
                'connect' =&gt; 'mysql_connect',
                'persistent' =&gt; false,
                'host' =&gt; 'localhost',
                'login' =&gt; 'login',
                'password' =&gt; 'password',
                'database' =&gt; 'db',
                'port' =&gt; '/tmp/mysql50.sock',
                'prefix' =&gt; '',
                'encoding' =&gt; 'utf8'
        );</code></pre>
<p>Ako môžeme vidieť, cestu k nášmu socketu stačí zadať do kolonky <em>port</em> a všetko bude fungovať správne. Týmto je náš článok u konca. V článku som sa snažil čo najjednoduchšie zhrnúť možnosti CakePHP v súvislosti s pripojením k databázam.</p>
<p>Rád uvítam vaše námety a pripomienky v diskusii k článku.</p>
]]></content:encoded>
			<wfw:commentRss>http://ims.rockretail.com/2008/03/26/pripojujeme-sa-k-databaze/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
