Použitie .NET kódu v PHP a vývoj .NET aplikácií v PHP
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.