Igor Kulman

Použitie .NET kódu v PHP a vývoj .NET aplikácií v PHP

· Igor Kulman

Phalanger je zaujímavý projekt, ktorého cieľom je prepojiť svet .NET a PHP, je to vlastne PHP kompilátor pre .NET platformu. Vo svojej prvej verzii umožňoval skompilovať a spúšťať existujúce PHP aplikácie, vo verzii 2.0 umožňuje používať PHP ako plnohodnotný .NET jazyk.

Verzia 2.0 umožňuje interportabilitu medzi PHP a .NET kódom a umožňuje používať väčšinu .NET objektov priamo z PHP pomocou PHP rozšírenia nazvaného PHP/CLR.

Čo Phalanger teda ponúka ?

Phalanger ponúka dve veci:

  • Využívať existujúci .NET kód v PHP projektoch
  • Vytvárať .NET aplikácie v PHP

Využívanie akéhokoľvek .NET kódu v PHP aplikáciách je celkom prínosná vec, možno si však kladiete otázku, kto by chcel vyvíjať .NET aplikácie v PHP. Aj na to existuje odpoveď, ide hlavne o ľudí zvyknutých na PHP, ktorý chcú začať experimentovať s .NET platformou a existuje množstvo úloh, ktoré sa v PHP vyriešia jednoduchšie ako v jazykoch rodiny .NET. Napríklad výpis článkov z RSS je pomocou simplexml doslova hračka, v C# by na to bol potrebný oveľa zložitejší kód.

Ako Phalanger použiť ?

Phalanger je možné najjednoduchšie použiť vo Visual Studiu, primárnom vývojovom prostredí pre platformu .NET. Úplne vám k tomu postačí bezplatný Visual Studio Shell , integrácia PHP a Phalanger .

Pri tvorbe nového projektu vám pribudnú nasledujúce možnosti:

  • Phalanger Class Library - vytvorenie .NET knižnice pomocou PHP kódu
  • Phalanger WinForms Application - vytvorenie .NET Windows Forms aplikácie pomocou PHP/CLR
  • PHP Console Application - vytvorenie konzolovej aplikácie pomocou PHP kódu
  • Phanalger Console Application - vytvorenie konzolovej aplikácie pomocou PHP/C
  • PHP Windows Application vytvorenie .NET Windows Forms aplikácie pomocou PHP kódu.

Rozšírenie PHP/CLR

Ako ste si určite všimli, každý druh aplikácie sa dá vytvoriť v režime PHP a v režime Phalanger. V PHP režime je možné používať len klasický PHP kód, v režime Phalanger máte k dispozícií spomínané rozšírenie PHP/CLR na prístup k .NET objektom, napríklad:

<?
  $rnd = new System:::Random;
  echoNext(10);
?>

Tvorba Windows Forms aplikácií

Tvorba Windows Forms aplikácií pomocou Phalangeru vo Visual Studiu je v podstate rovnaká ako napríklad v C#, s tým rozdielom, že ako jazyk využívate PHP/CLR, jednoduchá aplikácia, ktorá po kliknutí na tlačidlo zobrazí text Hello Word, môže vyzerať napríklad takto:

import namespace System:::Windows:::Forms;
import namespace System:::ComponentModel;
import namespace System:::Drawing;
import namespace WindowsApplication3;
 
namespace WindowsApplication3 {
 
 [Export]
 class Form1 extends System:::Windows:::Forms:::Form {
  
  private $button1;
   
  private $components = NULL;
   
  public function __construct()
  : parent() {
  $this->InitializeComponent();
  }
   
  public function InitializeComponent() {
   $this->button1 = new System:::Windows:::Forms:::Button();
   $this->SuspendLayout();
   // 
   // button1
   // 
   $this->button1->Location = new System:::Drawing:::Point(91, 183);
   $this->button1->Name = "button1";
   $this->button1->Size = new System:::Drawing:::Size(75, 23);
   $this->button1->TabIndex = 0;
   $this->button1->Text = "button1";
   $this->button1->UseVisualStyleBackColor = true;
   $this->button1->Click->Add(new System:::EventHandler(array($this, "button1_Click")));
   // 
   // Form1
   // 
   $this->AutoScaleDimensions = new System:::Drawing:::SizeF(6, 13);
   $this->AutoScaleMode = System:::Windows:::Forms:::AutoScaleMode::Font;
   $this->ClientSize = new System:::Drawing:::Size(292, 266);
   $this->Controls->Add($this->button1);
   $this->Name = "Form1";
   $this->Text = "Form1";
   $this->ResumeLayout(false);
  }
   
  private function button1_Click(System:::Object $sender, System:::EventArgs $e) {
   
  MessageBox::Show("Hello world");
   
  }
 }
}
?>

Zhrnutie

Phalanger je podľa mňa veľmi zaujímavý projekt, ktorý spája dva dosť oddelené svety a z ich prepojenia môže ťažiť každý,. Či už PHP alebo .NET programátor.