FAQ |
Kalender |
Ämnesverktyg | Visningsalternativ |
2013-06-28, 01:24 | #1 | ||
|
|||
Klarade millennium-buggen
|
(Tråden är en fortsättning på diskussionen i tråden: http://www.wn.se/t1058306-15-2.html)
Jag flyttar diskussionen om Phalanger till en ny tråd för den blir lite OT i ursprungstråden. Det kan vara nyttigt att fokusera på utvärderingen utan att diskutera övriga frågor i tråden. |
||
Svara med citat |
2013-06-28, 01:43 | #2 | ||
|
|||
Klarade millennium-buggen
|
Verktyget Phalanger hittar du här: (http://phalanger.codeplex.com/).
Phalaner är med andra ord en kompilator som skapar EXE- eller DLL-filer, eller webbsidor för IIS för Microsoft .NET-miljön, av programkod som skrivits enligt PHP5- eller PHP6-syntax. Det finns vissa diskrepenseer p g a att verktyget är ganska nytt och inte testat fullt ut. Jag har börjat testa verktyget för att se om jag kan hitta en användning för verktyget, primärt i mitt yrke som systemutvecklare. Jag planerar att dela med mig av mina erfarenheter här i tråden. Jag uppskattar om andra finner nöje i att testa verktyget och dela med sig av sina erfarenheter här i tråden. Jag har som mål att testa såna egenskaper som jag anser vara viktiga vid utveckling: - Objekttänkandet (Den objektorienterade eller objektbaserade paradigmen) - Kompilering - Typning - Komponenttänkande (dvs ej källkodsbaserade komponenter) - Integration i Microsoft Visual Studio - Kommandoradsinterface (CLI) - Interoperabilitet med .NET-miljön - Hur man skapar återanvändbara komponenter för PHP5- (& senare PHP6-syntax) - Hur man skapar återanvändbara komponenter för .NET - Hur man använder återanvändbara komponenter i PHP5- (& senare PHP6-syntax) - Hur man använder återanvändbara komponenter i .NET Eftersom jag inte är särskilt erfaren PHP utvecklare kommer jag inte att fokusera på egenskaper som (det får andra göra): - Bakåtkompatibilitet med äldre PHP-syntax - Överensstämmelse med loose typing-paradigmen - Scriptspråks-tänket Senast redigerad av Conny Westh den 2013-06-28 klockan 01:49 |
||
Svara med citat |
2013-06-28, 09:53 | #3 | ||
|
|||
Administratör
|
Inslag av PHP6. Intressant.Snabb titt på deras wiki ser man att de inte ens stödjer PHP5.5. Sen undrar jag då vad som stöds från den väldigt ospikade listan på https://wiki.php.net/todo/php60 Eller du kanske hade något helt annat i åtanke? För inslag från något som inte ens finns låter lite konstigt.
Att native PHP extensions gör att man får köra allt i 32-bitar. Det skulle jag kalla produktionsodugligt för nya projekt. Intressant att du även har omdefinierat "komponenttänkande" till att bara täcka upp stängda miljöer. Jag förstår verkligen inte varför en komponent som kan buggfixas och felsökas är mindre av en komponent, men allt för sitt syfte? Jag är faktiskt rätt intresserad om du faktiskt finner något vettigt syfte alls för hela lösningen. Vill man köra en PHP applikation i en MS-miljö är ju PHP så öppet att du enkelt kör PHP under IIS. Därutöver verkar det mest som ett sätt att förstöra och begränsa ekosystemet och utvecklingsprocessen. Men om man som .NET utvecklare aldrig vill gilla PHP så kanske det är en bra egenskap? Men då förstår jag inte varför man inte håller sig borta helt ... Och ta nu inte detta som ett tal för PHP (som jag jobbar med nästan varje dag) eller mot .net (som jag satt med senast igår kväll). Det är endast menat emot Phalanger som jag inte ser den minsta lilla poäng att faktiskt lära sig.
__________________
eldefors.com - Personlig (teknik)-blogg |
||
Svara med citat |
2013-06-28, 11:56 | #4 | ||
|
|||
Har WN som tidsfördriv
|
Jag har inte sett diskussionen i länkad tråd, inte heller sett, provat eller hört talas om Phalanger tidigare.
Däremot kan jag sett ett användningsområde: om man vill med PHP skapa .NET-baserade program som kan köras utan webbserver. (win8 appar eller liknande) Fast varför inte lära sig .NET i så fall? I övrigt håller jag med Clarence. |
||
Svara med citat |
2013-06-28, 12:07 | #5 | ||
|
|||
Medlem
|
Ser inte heller någon större vits med att "göra om" PHP-skript till .exe eller .dll-filer? Är det inte bättre att i så fall välja ett annat programmeringsspråk där detta är en mer naturlig del av sättet att utveckla för det specifika språket?
|
||
Svara med citat |
2013-06-28, 19:59 | #6 | ||
|
|||
Klarade millennium-buggen
|
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; } } } 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; } } ?> 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... 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. Senast redigerad av Conny Westh den 2013-06-28 klockan 20:03 |
||
Svara med citat |
2013-06-29, 01:29 | #7 | ||
|
|||
Supermoderator
|
Citat:
__________________
Full-stack developer, free for smaller assignments Senast redigerad av tartareandesire den 2013-06-29 klockan 23:49 |
||
Svara med citat |
2013-06-30, 22:26 | #8 | ||
|
|||
Administratör
|
Citat:
Nej, jag tror nog digiart var den enda som lyckades hitta en fördel här. Men också den är ju verkligen ett extremt edge case. Om man har en färdigskriven PHP app med lite UI logik och vill använda den för en metro app och råkar ha använt tillräckligt stor del kod som stöds av Phalanger så kan man kanske snabbare få ut sin metro app.
__________________
eldefors.com - Personlig (teknik)-blogg |
||
Svara med citat |
2013-07-01, 05:09 | #9 | ||
|
|||
Klarade millennium-buggen
|
Citat:
Källkod som du kopierar från ett projekt till ett annat är inte att betrakta som "återanvändning" av färdigtestade komponenter, eftersom du då öppnar upp risken att någon (du själv inräknat) går in och gör ändringar i en källkodsfil men inte i de andra 150.... Källkoden är fortfarande hur öppen man vill att den ska vara, "open source" har inget motsatsförhållande till begreppet "färdigtestade komponenter". Jag såg även att det faktiskt finns stöd från PHP version 4.1 eller om det var 4.3 för klasserna COM, respektive DOTNET som gör att man kan instanciera Windows COM respektive DOTNET-DLLer. När jag testade i PHP 5.5.0 nu så fick jag det dock inte att fungera, men det kan ju bero på att jag inte ställt in PHP.INI på rätt sätt, jag håller på att undersöka. Men jag tycker Phalanger verkar lovande i alla fall. Nu har jag installerat och kört lite objektorienterad Python (dock okompilerat) i Visual Studio så jag har inte testat hur COM och DOTNET-klasserna funkar i PHP. Python verkar väldigt känsligt för kolumnpositioner på källkodsraderna, det är som att gå tillbaks till Cobol, som också var extremt känsligt för källkodens kolumnpositioner. |
||
Svara med citat |
2013-07-01, 06:15 | #10 | ||
|
|||
Supermoderator
|
Med open source finns alltid "risken" att någon ändrar i din färdigtestade kod... Det är ju en av de stora fördelarna. Du måste nog allt bli lite mer flexibel och öppen om du någonsin ska kunna ta till dig PHP.
__________________
Full-stack developer, free for smaller assignments |
||
Svara med citat |
Svara |
|
|