<?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>Web i tome slično... IvanIlijasic.com &#187; AMFPHP</title>
	<atom:link href="http://www.ivanilijasic.com/tag/amfphp/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.ivanilijasic.com</link>
	<description>Stranice koje svaki pošteni IT-jevac stavlja na zadnje mjesto</description>
	<lastBuildDate>Mon, 07 Nov 2011 11:00:53 +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>Upload datoteka pomoću AMFPHP-a</title>
		<link>http://www.ivanilijasic.com/2009/09/upload-datoteka-pomocu-amfphp-a/</link>
		<comments>http://www.ivanilijasic.com/2009/09/upload-datoteka-pomocu-amfphp-a/#comments</comments>
		<pubDate>Thu, 10 Sep 2009 09:40:40 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[AMFPHP]]></category>
		<category><![CDATA[Adobe Flex]]></category>
		<category><![CDATA[flex 4]]></category>

		<guid isPermaLink="false">http://www.ivanilijasic.com/?p=743</guid>
		<description><![CDATA[Evo još jednog zgodnog tutoriala za sve PHP/Flex developere. U ovom odličnom članku možete vidjeti kako napraviti funkcionalnost pohrane datoteka na server pomoću Flexa 4 i AMFPHP-a. Vjerujem kako se koncept ovog tutoriala može jednostavno primjeniti i za razvoj istog PHP rješenja pomoću Zend AMF-a ili WebORBa za PHP.
Multiple file upload with AMFPHP
]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;"><a href="http://www.ivanilijasic.com/wp-content/uploads/2009/09/figure3.png" rel="lightbox[743]"><img class="alignleft size-thumbnail wp-image-744" title="Upload datoteka pomoću AMFPHP-a" src="http://www.ivanilijasic.com/wp-content/uploads/2009/09/figure3-150x150.png" alt="Upload datoteka pomoću AMFPHP-a" width="150" height="150" /></a>Evo još jednog zgodnog tutoriala za sve PHP/Flex developere. U ovom odličnom članku možete vidjeti kako napraviti funkcionalnost pohrane datoteka na server pomoću <strong>Flexa 4</strong> i <strong>AMFPHP-a</strong>. Vjerujem kako se koncept ovog tutoriala može jednostavno primjeniti i za razvoj istog PHP rješenja pomoću Zend AMF-a ili WebORBa za PHP.</p>
<p><a href="http://www.flexer.info/2009/09/02/multiple-file-upload-using-amfphp/">Multiple file upload with AMFPHP</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.ivanilijasic.com/2009/09/upload-datoteka-pomocu-amfphp-a/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Napravite knjigu gostiju pomoću Flexa, AMFPHP-a i PHP-a</title>
		<link>http://www.ivanilijasic.com/2009/05/napravite-knjigu-gostiju-pomocu-flexa-amfphp-a-i-php-a/</link>
		<comments>http://www.ivanilijasic.com/2009/05/napravite-knjigu-gostiju-pomocu-flexa-amfphp-a-i-php-a/#comments</comments>
		<pubDate>Sat, 23 May 2009 15:24:03 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[AMFPHP]]></category>
		<category><![CDATA[Flex Cookbook]]></category>
		<category><![CDATA[MySQL]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[flex]]></category>
		<category><![CDATA[guestbook]]></category>

		<guid isPermaLink="false">http://www.ivanilijasic.test/?p=184</guid>
		<description><![CDATA[Dakle, naučili ste kako se koristi AMFPHP, znate kako dohvatiti podatke iz MySQL-a. Onda Vam ne bi trebao biti problem složiti jednostavni guestbook. Za to je potrebna jednostavna forma za unos, onda recimo jedan  DataGrid za prikaz podataka i AMFPHP servis koji će primiti podatke i poslati sve komentare našem Flex klijentu.

Dakle, imate Flex formu [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;"><a href="http://www.ivanilijasic.com/wp-content/uploads/2009/05/amfphp_logo.gif" rel="lightbox[184]"><img class="alignleft size-thumbnail wp-image-217" title="AMFPHP" src="http://www.ivanilijasic.com/wp-content/uploads/2009/05/amfphp_logo-150x121.gif" alt="AMFPHP" /></a>Dakle, naučili ste kako se koristi AMFPHP, znate kako dohvatiti podatke iz MySQL-a. Onda Vam ne bi trebao biti problem složiti jednostavni guestbook. Za to je potrebna jednostavna forma za unos, onda recimo jedan  DataGrid za prikaz podataka i AMFPHP servis koji će primiti podatke i poslati sve komentare našem Flex klijentu.</p>
<p><span id="more-184"></span></p>
<p style="text-align: justify;">Dakle, imate Flex formu u koju će korisnik upisati svoj komentar. Za potrebe pohrane tih informacija trebamo Actionscript klasu. Klasa će biti definirana unutar package-a org.zgflex. Bitno je, kao i u svim primjerima rada s AMFPHP-om, navesti Remote alias klase:</p>
<p><strong></strong></p>
<pre><span style="font-size: x-small;">package org.zgflex
{
 [RemoteClass(alias="org.zgflex.Comment")]
 [Bindable]
 public class Comment
 {
    public var id:int;
    public var name:String;
    public var title:String;
    public var email:String;
    public var comment:String;
  }
}</span></pre>
<p>Istu takvu PHP klasu je potrebno složiti na serveru.</p>
<pre><span style="font-size: x-small;">&lt;?php
</span><span style="font-size: x-small;">class Comment {</span><span style="font-size: x-small;"> 
   public $id;
</span><span style="font-size: x-small;">   public $name;
   public $title;
</span><span style="font-size: x-small;">   public $email;
   public $comment;
</span><span style="font-size: x-small;">   var $_explicitType = "org.zgflex.Comment";
</span><span style="font-size: x-small;">}
?&gt;</span></pre>
<p style="text-align: justify;">PHP servis treba imati dvije metode, jednu za pospremanje komentara u MySQL bazu podataka, a drugi koji će dohvatiti sve pohranjene komentare.</p>
<pre><span style="font-size: x-small;">    public function getAllPosts()
    function sendComment($comment)</span></pre>
<p style="text-align: justify;">I ostaje nam samo nakon toga upogoniti Flex. Prilikom pritiska na gumb forme podaci se šalju na server, a ukoliko je komentar uredno pohranjen u bazu podataka, pokrenut će se zahtjev za dohvat svih upisanih postova i oni će se pospremiti u DataGrid. Dolje možete vidjeti kako izgleda kod RemoteObject instance koja zove PHP server.</p>
<pre><span style="font-size: x-small;">    &lt;mx:RemoteObject id="GuestbookService" source="org.zgFlex.cookbook.services.GuestbookService"
         destination="amfphp" fault="faultHandler(event)" showBusyCursor="true"&gt;
        &lt;mx:method name="getAllPosts" result="getAllPostsHandler(event)"
                 fault="faultHandler(event)" /&gt;
        &lt;mx:method name="sendComment" result="sendCommentHandler(event)"
                 fault="faultHandler(event)" /&gt;
    &lt;/mx:RemoteObject&gt; </span>
</pre>
<p style="text-align: center;"><a href="http://www.ivanilijasic.com/wp-content/uploads/2009/05/php_flex_guestbook.png" rel="lightbox[184]"><img class="aligncenter size-thumbnail wp-image-242" title="PHP Flex Guestbook" src="http://www.ivanilijasic.com/wp-content/uploads/2009/05/php_flex_guestbook-150x150.png" alt="PHP Flex Guestbook" /></a></p>
<p>Ovdje možete dohvatiti kod opisanog primjera: <a href="http://www.ivanilijasic.com/flex_recepti/MyAMFPHPGuestBook.zip">PHP Flex Guestbook</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.ivanilijasic.com/2009/05/napravite-knjigu-gostiju-pomocu-flexa-amfphp-a-i-php-a/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Popunite vrijednosti komponenti pomoću AMFPHP-a</title>
		<link>http://www.ivanilijasic.com/2009/05/popunite-vrijednosti-komponenti-pomocu-amfphp-a/</link>
		<comments>http://www.ivanilijasic.com/2009/05/popunite-vrijednosti-komponenti-pomocu-amfphp-a/#comments</comments>
		<pubDate>Sat, 23 May 2009 15:22:08 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[AMFPHP]]></category>
		<category><![CDATA[Flex Cookbook]]></category>
		<category><![CDATA[MySQL]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[flex]]></category>
		<category><![CDATA[flex komponente]]></category>

		<guid isPermaLink="false">http://www.ivanilijasic.test/?p=181</guid>
		<description><![CDATA[Nakon što ste napravili svoj prvi pravi primjer korištenja Flexa i PHP-a korištenjem AMF protokola, onda je vrijeme  da vidimo kako možemo popuniti vrijednosti nekih Flex komponenti dohvatom podataka sa servera iz MySQL baze. Ovaj kratki primjer se nadovezuje na raniji tekst &#8211; Započnite koristiti AMFPHP.

U ovom primjeru ćete pomoću PHP upita dohvatiti niz podataka [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;"><a href="http://www.ivanilijasic.com/wp-content/uploads/2009/05/amfphp_logo.gif" rel="lightbox[181]"><img class="alignleft size-thumbnail wp-image-217" title="AMFPHP" src="http://www.ivanilijasic.com/wp-content/uploads/2009/05/amfphp_logo-150x121.gif" alt="AMFPHP" /></a>Nakon što ste napravili svoj prvi pravi primjer korištenja Flexa i PHP-a korištenjem AMF protokola, onda je vrijeme  da vidimo kako možemo popuniti vrijednosti nekih Flex komponenti dohvatom podataka sa servera iz MySQL baze. Ovaj kratki primjer se nadovezuje na raniji tekst &#8211; <a href="http://www.ivanilijasic.com/2009/05/zapocnite-koristiti-amfphp/">Započnite koristiti AMFPHP</a>.</p>
<p><span id="more-181"></span></p>
<p style="text-align: justify;">U ovom primjeru ćete pomoću PHP upita dohvatiti niz podataka koji će biti posebno formatiran za Flex ComboBox, nakon toga ćete odabirom određene momčadi (opet je primjer s podacima o nogometnim momčadima) popuniti podatke o igračima momčadi unutar DataGrida, pozivom metode RemoteObjecta koja je opet povezana AMF protokolom na PHP server. Dolje navedena PHP metoda dohvaća listu momčadi, s time da su podaci u arrayu postavljeni tako da se ComboBox popuni prilikom dohvata niza sa servera (zato se dobivaju vrijednosti label i data).</p>
<pre><span style="font-size: x-small;">    public function getTeamsList()
    {
        $sql = 'SELECT     id data,
                        title label
                FROM     team
                ORDER by title ASC';

        $result = mysql_query($sql, $this-&gt;_db);
     
        $teams = array();
     
        while ($row = mysql_fetch_object($result)) {
            $teams[] = array('data' =&gt; $row-&gt;data, 'label' =&gt; $row-&gt;label);
        }
     
        mysql_free_result($result);
        return $teams;     
    } 
</span></pre>
<p style="text-align: justify;">Priča će se dalje nastaviti tako što ćete moći odabirom retka u DataGridu vidjeti podatke o tom igraču u Flex Label objektima, a nakon toga ćete iz druge padajuće liste moći transferirati igrača u neki drugi klub. Povratnom informacijom sa servera ćete dobiti promjenu ekrana, tako što će prelaskom igrača u npr. Chelsea, Flex aplikacija pozvati dohvat svih igrača iz tog novog kluba.</p>
<p style="text-align: center;"><a href="http://www.ivanilijasic.com/wp-content/uploads/2009/05/komponente_amfphp.png" rel="lightbox[181]"><img class="aligncenter size-medium wp-image-238" title="AMFPHP i Flex komponente" src="http://www.ivanilijasic.com/wp-content/uploads/2009/05/komponente_amfphp-300x176.png" alt="AMFPHP i Flex komponente" /></a></p>
<p>Demo opisane aplikacije možete skinuti ovdje: <a href="http://www.ivanilijasic.com/flex_recepti/PopulateComponentsWithAMFPHP.zip">Popunite vrijednosti Flex komponenata pomoću AMFPHP-a</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.ivanilijasic.com/2009/05/popunite-vrijednosti-komponenti-pomocu-amfphp-a/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Započnite koristiti AMFPHP</title>
		<link>http://www.ivanilijasic.com/2009/05/zapocnite-koristiti-amfphp/</link>
		<comments>http://www.ivanilijasic.com/2009/05/zapocnite-koristiti-amfphp/#comments</comments>
		<pubDate>Sat, 23 May 2009 15:16:08 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[AMFPHP]]></category>
		<category><![CDATA[Adobe Flex]]></category>
		<category><![CDATA[Flex Cookbook]]></category>
		<category><![CDATA[MySQL]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Adobe]]></category>
		<category><![CDATA[amf]]></category>
		<category><![CDATA[flex]]></category>

		<guid isPermaLink="false">http://www.ivanilijasic.test/?p=176</guid>
		<description><![CDATA[AMFPHP je razvijena PHP platforma za komunikaciju Flex / Flash / Air aplikacija s  PHP  serverom putem AMF protokola. Prednosti AMF protokola u odnosu na klasično pozivanje servera putem HTTP servisa  su mogućnost mapiranja podataka na serveru i bolje performanse u razmjeni informacija između računala klijenta i servera na kojemu se vrti PHP kod.
AMFPHP je [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;"><a href="http://www.ivanilijasic.com/wp-content/uploads/2009/05/amfphp_logo1.gif" rel="lightbox[176]"><img class="alignleft size-thumbnail wp-image-218" title="AMFPHP" src="http://www.ivanilijasic.com/wp-content/uploads/2009/05/amfphp_logo1-150x121.gif" alt="AMFPHP" /></a>AMFPHP je razvijena PHP platforma za komunikaciju Flex / Flash / Air aplikacija s  PHP  serverom putem AMF protokola. Prednosti AMF protokola u odnosu na klasično pozivanje servera putem HTTP servisa  su mogućnost mapiranja podataka na serveru i bolje performanse u razmjeni informacija između računala klijenta i servera na kojemu se vrti PHP kod.</p>
<p style="text-align: justify;"><span id="more-176"></span>AMFPHP je bio jedan od prvih serverskih dodataka za razvoj Flex web aplikacija koje u pozadini koriste PHP i AMF protkol. Najnoviju verziju AMFPHP-a možete skinuti na <a href="http://www.amfphp.org/">www.amfphp.org</a>. Nakon što skinete AMFPHP, sadržaj arhive pohranite na direktorij na lokalnom ili udaljenom serveru.<a href="http://www.amfphp.org/"><br />
 </a></p>
<p style="text-align: justify;">Recimo, napravite direktorij &#8220;amf&#8221; i u njega pohranite sadržaj čitave arhive. Ako to radite na lokalnom serveru, onda bi to trebao biti direktorij kojemu se može pristupiti preko linka: <a href="http://localhost/your_directory/">http://localhost/amf/</a>. U mojim primjerima ćete vidjeti da obično koristim neki drugi testni server, pa onda i vi možete napraviti tako, inače samo prepravite URL-ove i sve će normalno funkcionirati.</p>
<p style="text-align: justify;">Da biste bili sigurni kako je AMFPHP ispravno instaliran, pristupite serveru putem linka i pokrenit gateway.php datoteku. Ako je sve u redu, trebali biste dobiti poruku kako je AMFPHP uredno instaliran i da možete pristupiti njegovom service browseru. Ako ne dobijete tu poruku, onda najvjerojatnije niste dobro raspakirali datoteke.</p>
<p style="text-align: justify;">Service browser je odlična opcija u AMFPHP libraryju, a pomaže vam pregledati sve postojeće PHP servise koje imate na serveru.</p>
<p style="text-align: center;"><a href="http://www.ivanilijasic.com/wp-content/uploads/2009/05/amfphp_service_browser.jpg" rel="lightbox[176]"><img class="size-medium wp-image-223 aligncenter" title="AMFPHP service browser" src="http://www.ivanilijasic.com/wp-content/uploads/2009/05/amfphp_service_browser-300x149.jpg" alt="Service browser - preglednik AMFPHP servisa na Vašem serveru" /></a></p>
<p style="text-align: justify;">Da biste napravili uspješan primjer komunikacije Flexa i PHP-a trebate napraviti testnu bazu podataka, kopirati PHP datoteke iz priložene arhive i u Flex Builder importati Flex projekt iz dolje navedenih arhiva. Tu ne bi trebalo biti nikakvih problema. Testna MySQL baza podataka sadrži podatke o nogometnim momčadima, igračima iz tih momčadi i pozicijama na kojima oni igraju.</p>
<p style="text-align: justify;">PHP datoteke treba pohraniti u AMFPHP direktorij services, jer se tamo pohranjuju svi PHP servisi. Unutar direktorija se nalaze dva poddirektorija, jedan u kojem se nalaze naši testni servisi, a u drugom se nalaze PHP klase koje ćemo koristiti za pohranu informacije. Idemo pogledati kako izgledaju ti servisi. Za potrebe ovog recepta napravio sam jednostavnu PHP klasu koja sadrži dvije metode:</p>
<pre><span style="font-size: x-small;"><span style="text-decoration: underline;"><code>FlexAMFPHP.php</code></span></span></pre>
<pre><span style="font-size: x-small;"><code>class FlexAMFPHP
{</code></span></pre>
<pre><span style="font-size: x-small;">   function communicationTest()
   {
      return 'Connected to AMFPHP!';
   }</span></pre>
<pre><span style="font-size: x-small;">   function checkAnotherMethod()
   {
       return 'Another method is checked!';
   }</span></pre>
<pre><span style="font-size: x-small;">}</span></pre>
<p>Bitno je naglasiti kako klasa untar datoteke mora imati isti naziv kao i sama datoteka. Sada kada imamo PHP servis, trebamo pogledati da li smo na server stavili crossdomain.xml datoteku, kojom se definiraju pravila pristupa remote klijenata na server. To znači da na server treba staviti datoteku kako bi Flex aplikacije (koje se vrte na klijentu) mogle pristupiti našem PHP serveru. Ovu datoteku stavite u root direktorij servera. Dolje je naveden osnovni sadržaj crossdomain.xml datoteke, a više o definiciji te datoteke može pronaći na Googleu.</p>
<pre><span style="font-size: x-small;"><span style="text-decoration: underline;"><code>crossdomain.xml</code></span></span></pre>
<pre><span style="font-size: x-small;"><code>&lt;?xml version="1.0" encoding="UTF-8"?&gt;
&lt;!DOCTYPE cross-domain-policy SYSTEM "<a href="http://www.macromedia.com/xml/dtds/cross-domain-policy.dtd">http://www.macromedia.com/xml/dtds/cross-domain-policy.dtd</a>"&gt;
&lt;cross-domain-policy&gt;
 &lt;allow-access-from domain="*" /&gt;
&lt;/cross-domain-policy&gt;</code></span></pre>
<p><strong></strong>Drugi PHP web servis će dohvaćati podatke o igračima i momčadima. Navedena klasa SoccerMannager dohvaća informacije o momčadima i igračima koji igraju za nju. Te informacije se pohranjuju u dvije PHP klase:</p>
<pre><span style="font-size: x-small;"><code>class Team
{
</code>   public $id;
   public $title;
   public $league;
   var $_explicitType = "org.zgflex.Team";
</span><span style="font-size: x-small;">// bitno navesti path, radi mapiranja s Actionscript klasom
<code>}</code><code>
class Player
{</code>
   public $id;
   public $name;
   public $team_id;
   public $team_title;
   public $team_league;
   public $position_id;
</span><span style="font-size: x-small;">   public $position_title;</span><span style="font-size: x-small;">
   var $_explicitType = "org.zgflex.Player";
<code>}
?&gt;</code></span></pre>
<p style="text-align: justify;">Trik kod korištenja AMF protokola je mapirati PHP i ActionScript klase. Tako ćete unutar Flex projekta imati slične ActionScript klase koje se nalaze u org.zgflex packageu. Na taj način će Flex dobiti podatke u obliku pojedinih objekata, te će ih smatrati Flex objektima koji su instanca pojedine klase koju smo napisali u Actionscriptu.</p>
<p style="text-align: justify;">U SoccerManager.php klasi podesite parametre za pristup MySQL bazi podataka. Možete testirati navedenu klasu i preko service browsera.</p>
<p style="text-align: justify;">Ostaje nam još učitati Flex projekt koji sadrži potrebne komponente. Za pristup servisima u Flexu se koristi datoteka service-config.xml, u kojoj se mora navesti na koju lokaciju gleda naša aplikacija. Stoga provjerite da li je URL u toj datoteci ispravan, a on treba gledati amf/gateway.php datoteku.  Također, kako bi Flex projekt koristio ovu XML datoteku, potrebno je koristiti ju kao izvor informacija kod kompajliranja projekta, pa je u postavkama Flex projekta potrebno staviti ovaj compiler parametar:</p>
<pre>-locale en_US -services "services-config.xml"</pre>
<p>Pokrenite Flex projekt i testirajte jednostavni i malo složeniji PHP servis. Flex se spaja na PHP servise putem RemoteObject instanci, kojima se predaju parametri po definiranim metodama. Rezultat sa servera se dohvaća u određeni resultHandler, a response se prihvaća kao result objekt iz pripadajućeg ResultEventa.</p>
<p>I to bi bilo to. Ako imate kakvih problema, slobodno ih javite <img src='http://www.ivanilijasic.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Source: <a href="http://www.ivanilijasic.com/flex_recepti/StartingWithAMFPHP.zip">Započnite koristiti AMFPHP</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.ivanilijasic.com/2009/05/zapocnite-koristiti-amfphp/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>

