Nu har jag testat att skapa ett C# Class Library med en enkel class 'Hello' och en metod Say() som skriver ut en parameter på consolen.
Förutsättningen är jag har Visual studio 2010 och Phalanger 3.0 installerat.
Jag började med att skapa ett projekt för C# Class Library, koden blev så här:
Kod:
// File: CSHello.cs
using System;
namespace CSharpClassLibrary
{
public class CSHello
{
int counter;
public CSHello()
{
counter = 0;
}
public string Say(string tell)
{
this.counter++;
string tello = String.Format("CSharpClassLibrary.CSHello.Say(): [{1}]->[{0}]", tell, counter);
Console.WriteLine("{0}", tello);
return tello;
}
}
}
Sen la jag till ett Phalanger Console application i samma solution i Visual Studio med följande PHP-kod:
Kod:
<?php
// File: PhpHelloApp.php
use CSharpClassLibrary as CSharpClassLibrary;
class PhpHelloApp
{
static function Main()
{
echo "Hello!\n";
$hello = new CSharpClassLibrary\CSHello();
$hello->Say("This is sent from Phalanger PHP-console-code!");
echo "Press any key to exit...";
fgets(STDIN);
echo "Done.\n";
return 0;
}
}
?>
Därefter så la jag till en Project-referens till CSClassLibrary.
Tryckte på F5 för att testköra och så fick jag följande out put på consolen:
Kod:
Hello!
CSharpClassLibrary.CSHello.Say(): [1]->[This is sent from Phalanger PHP-console-code!]
Press any key to exit...
Det funkade med andra ord som jag förväntade mig.
Fördelen är att den som nu föredrar att arbeta med syntaxen i PHP men vill komma åt funktionalitet i .NET Framework eller länka in komponenter skrivna i .NET, nu kan göra det. Man kan med andra ord använda färdigtestade komponenter från .NET men skriva syntaxen i PHP om man gillar det.