WN

WN (https://www.wn.se/forum/index.php)
-   Nyheter (https://www.wn.se/forum/forumdisplay.php?f=3)
-   -   PHP 5.5 har släppts (https://www.wn.se/forum/showthread.php?t=1058306)

christian. 2013-06-20 14:55

PHP 5.5 har släppts
 
https://github.com/php/php-src/blob/php-5.5.0/NEWS

Conny Westh 2013-06-21 01:12

Har nu installerat 5.5.0 men får felmeddelande:

Kod:

Det går inte att hitta procedurstartadressen zval_property_cstor i DLL-filen php5ts.dll.
Har givetvis sökt på 'zval_property_cstor' men det finns inget enligt google.

söker jag på 'php5ts.dll' så får jag en del träffar om att man ska lägga till extension för den filen, har dock inte använt detta i tidigar eversioner av php och det har då funkat ändå.

Har lagt till en rad i php.ini

extension=php5ts.dll

... men får ändå fel när jag kör 'php -v' på commandoraden....

Kod:

C:\Users\ConnyWesth>php -v
PHP 5.5.0 (cli) (built: Jun 19 2013 16:13:16)
Copyright (c) 1997-2013 The PHP Group
Zend Engine v2.5.0-dev, Copyright (c) 1998-2013 Zend Technologies
C:\Users\ConnyWesth>

Förra versionen jag körde av PHP var 5.3.15 och då behövdes inte denna extension....

När jag uppgraderade så tog jag "thread-safe"-versionen och kopierade in filerna från ZIP-filen, eftersom det inte har kommit någon installations-exe för Windows ännu, vad jag kunde se.


Några förslag, hur jag ska lösa detta problem?

Danielos 2013-06-21 17:26

Citat:

Ursprungligen postat av ConnyWesth (Inlägg 20472382)
Några förslag, hur jag ska lösa detta problem?

Den snabbaste och bästa lösningen är att du kör Linux :) Testade själv på debian och stötte inte på några problem, php körs med fördel på Linux/Unix system, det är ingen nyhet.

Conny Westh 2013-06-21 20:34

Citat:

Ursprungligen postat av Danielos (Inlägg 20472401)
Den snabbaste och bästa lösningen är att du kör Linux :) Testade själv på debian och stötte inte på några problem, php körs med fördel på Linux/Unix system, det är ingen nyhet.

Linux är inget alternativ....

Conny Westh 2013-06-21 20:36

Fick även konstiga felmeddelanden om att jag måste ställa in timezone, så jag la till en rad i php.ini:

Kod:

date.timezone = "Europe/Stockholm"
Sen löste sig det problemet, men jag får fortfarande felmeddealndet när jag kör 'php -v' på commandoraden.

MRDJ 2013-06-21 20:46

Citat:

Ursprungligen postat av ConnyWesth (Inlägg 20472412)
Linux är inget alternativ....

PHP på windows känns ju bara fel

Conny Westh 2013-06-21 21:19

Nu hittade jag felet, jag hade inte uppdaterat php.ini till senaste version (jag valde development-versionen). Nu har jag gjort det och sen moddat filen så jag har lagt till:

Kod:

date.timezone="Europe/Stockholm"
extension_dir=".\ext"
extension=php_pdo_mysql.dll

Sen funkade det att köra 'php-v' utan felmeddelande och jag får inga dialoger om filer som saknas när jag kör min testrutin.

Conny Westh 2013-06-21 21:32

Citat:

Ursprungligen postat av MRDJ (Inlägg 20472414)
PHP på windows känns ju bara fel

Ja absolut, jag håller helt med.

C#/VB.NET är många gånger vassare på det mesta, men jag kör php i utbildningssysfte för att lära mig lite mer om språket och se om det blir något bättre för var version som släpps.

PHP är i grunden ett imperativt språk och tekniskt minst 20 år efter när det gäller det mesta. De problem som PHP har idag känner jag igen från tiden när jag satt och grottade ner mig i samma problemområden för drygt 20 år sedan inom DOS/Windows.

Men det kommer mer och mer objektbaserade mekanismer så de är på rätt väg.

Men för att php ska vara något att räkna med så måste de satsa helhjärtat på den objektorienterade paradigmen och införa stark typning, samt införa en kompilator, det är tre mycket grundläggande egenskaper för moderna programspråk där PHP fortfarande har stora brister.

Men som sagt de blir bättre för varje ny version.

tartareandesire 2013-06-21 22:26

Conny, dina kommentarer om PHP börjar bli lite tjatiga. Om du fortfarande lever kvar i tron att PHP inte är något att räkna med så behöver du verkligen uppdatera dina branschkunskaper.

Det ska för övrigt bli riktigt spännande när det är dags för PHP 6.

MRDJ 2013-06-21 23:31

Citat:

Ursprungligen postat av ConnyWesth (Inlägg 20472418)
Ja absolut, jag håller helt med.

C#/VB.NET är många gånger vassare på det mesta, men jag kör php i utbildningssysfte för att lära mig lite mer om språket och se om det blir något bättre för var version som släpps.

PHP är i grunden ett imperativt språk och tekniskt minst 20 år efter när det gäller det mesta. De problem som PHP har idag känner jag igen från tiden när jag satt och grottade ner mig i samma problemområden för drygt 20 år sedan inom DOS/Windows.

Men det kommer mer och mer objektbaserade mekanismer så de är på rätt väg.

Men för att php ska vara något att räkna med så måste de satsa helhjärtat på den objektorienterade paradigmen och införa stark typning, samt införa en kompilator, det är tre mycket grundläggande egenskaper för moderna programspråk där PHP fortfarande har stora brister.

Men som sagt de blir bättre för varje ny version.


Det du pratar om är systemutveckling i .NET och det har absolut inget med php att göra.

Jag förstår att du försvarar .NET då det är det du jobbar med, jag har jobbat med både linux/ms .NET och PHP ganska exakt 50/50.Nu märker vi av en trend att MS tappar när det gäller web,mycket på grund av webforms/ viewstate osv. självfallet går det att köra MVC men tyvärr är inte MS längre det naturliga valet när det gäller web. och utvecklingen ser ut att fortsätta i samma bana. många väljer att inte jobba med frontendutveckling i visual studio för att istället använda t.ex sublime, aptana eller liknande.

dels på grund av kostnader, men även andra anledningar. mycket av allt som finns i visual studio har spelat ut sin roll då det segmenterats mellan systemutveckling och webb i form av jsonp-webservices och liknande.

Conny Westh 2013-06-21 23:42

Citat:

Ursprungligen postat av tartareandesire (Inlägg 20472422)
Conny, dina kommentarer om PHP börjar bli lite tjatiga. Om du fortfarande lever kvar i tron att PHP inte är något att räkna med så behöver du verkligen uppdatera dina branschkunskaper.

Det ska för övrigt bli riktigt spännande när det är dags för PHP 6.

Jag följer med utvecklingen av PHP (och andra språk) men tycker PHP har mycket att bevisa för att bli något att räkna med urteknisk synvinkel.

Jag håller med om att språket har utvecklats till det bättre bland annat i och med att de har infört PDO som är ett stort lyft när man jobbar med databaser.

Jag vet inte vad det är som är så speciellt med PHP. Det finns flera riktigt bra språk som har bättre stöd till utvecklaren och som är gratis att använda.

Jag har kört Mono-Complete i Ubuntu med C# och VBN (VB.NET-clone) och jag kan använda min invanda Visual Studio-miljö i Windows att skapa exe-filer som jag sedan kan lyfta över och köra binärkompatibelt i Ubuntu/Linux-miljön (om jag har paketet Mono-Complete installerat), det funkar riktigt bra och det är då fullt ut objetorientrat med stark typning och semikompilerat till .NET IL-kod (ungefär som Java funkar).

PHP-interpretern självt är ju skrivet i C++ och Windows-versionen kompileras med Visual Studio version 11.

Jag tycker även att Java är betydligt vassare än PHP. Java, C#, J# och J++ är mycket snarlika varandra i syntaxen. Så det är mycket lätt att växla mellan dessa språk. Jag har även kört Gnu C++ och tycker att det är betydligt vassare än PHP.

PHP har visserligen samma grundläggande syntaxstruktur med måsvingar för markering av kodblock, men brister i typningen. Vissa gillar det andra inte, för mig är det egalt. Jag använder både måsvingar och de utan som VB.NET och har inga känslomässiga problem med dem.

Stark typning är en viktig del för att få så mycket hjälp som möjligt av kompilatorn att kolla att jag som utvecklare har använt rätt datatyp eller klass.

PHP har den lustiga egenheten att det har en "implicit" typning så PHP-interpretern väljer datatyp utifrån den första tilldelningen av en variebel. Om den första tilldelningen var fel så följer det felet med och det tar onödigt lång tid att felsöka.

Har man stark typning med en egen deklaration före första användningen av en variabel så får man en extra kontroll som är väldigt viktig i större IT-system. Har man gjort fel i själva deklarationen så upptäcker man det redan vid första tilldelningen eller ibland avläsning av variabeln.

Man får även bättre stöd av IDEn då det går att få mer Meta-information som hjälper till att höja produktiviteten mångfalt, se exempelvis "IntelliSense" som finns för exempelvis Java i Eclipse och har funnits många år i Visual Studio.

Du får gärna peka på de tekniska fördelar du ser med PHP så ska jag genast undersöka dem. Jag söker hela tiden efter nya kunskaper och best-practise.

För mig är det viktigt att ett programmeringsspråk har:

- Inkapsling för att dölja komplexitet och göra det förutsägbart och därmed "tryggt" att bygga större system
- Modularitet för at enkelt lägga till och förändra funktionalitet
- Stark typning för att hitta fel som programmeraren gör direkt vid kodning/kompilering
- Kompilering för att dels skydda kod mot ändringar av obehöriga och underlätta modularitet
- Objektorienterad paradigm med alla dess övriga fördelar
- Numera finns även namespace för att underlätta modularitet och inkapsling med namnrymder
- Återanvändbarhet (inte "cut and paste" som mångfaldigar underhållsproblem) är ett mycket viktigt område som är ett kapitel i sig

MRDJ 2013-06-21 23:59

Citat:

Ursprungligen postat av ConnyWesth (Inlägg 20472426)
Jag följer med utvecklingen av PHP (och andra språk) men tycker PHP har mycket att bevisa för att bli något att räkna med urteknisk synvinkel.

Jag håller med om att språket har utvecklats till det bättre bland annat i och med att de har infört PDO som är ett stort lyft när man jobbar med databaser.

Jag vet inte vad det är som är så speciellt med PHP. Det finns flera riktigt bra språk som har bättre stöd till utvecklaren och som är gratis att använda.

Jag har kört Mono-Complete i Ubuntu med C# och VBN (VB.NET-clone) och jag kan använda min invanda Visual Studio-miljö i Windows att skapa exe-filer som jag sedan kan lyfta över och köra binärkompatibelt i Ubuntu/Linux-miljön (om jag har paketet Mono-Complete installerat), det funkar riktigt bra och det är då fullt ut objetorientrat med stark typning och semikompilerat till .NET IL-kod (ungefär som Java funkar).

PHP-interpretern självt är ju skrivet i C++ och Windows-versionen kompileras med Visual Studio version 11.

Jag tycker även att Java är betydligt vassare än PHP. Java, C#, J# och J++ är mycket snarlika varandra i syntaxen. Så det är mycket lätt att växla mellan dessa språk. Jag har även kört Gnu C++ och tycker att det är betydligt vassare än PHP.

PHP har visserligen samma grundläggande syntaxstruktur med måsvingar för markering av kodblock, men brister i typningen. Vissa gillar det andra inte, för mig är det egalt. Jag använder både måsvingar och de utan som VB.NET och har inga känslomässiga problem med dem.

Stark typning är en viktig del för att få så mycket hjälp som möjligt av kompilatorn att kolla att jag som utvecklare har använt rätt datatyp eller klass.

PHP har den lustiga egenheten att det har en "implicit" typning så PHP-interpretern väljer datatyp utifrån den första tilldelningen av en variebel. Om den första tilldelningen var fel så följer det felet med och det tar onödigt lång tid att felsöka.

Har man stark typning med en egen deklaration före första användningen av en variabel så får man en extra kontroll som är väldigt viktig i större IT-system. Har man gjort fel i själva deklarationen så upptäcker man det redan vid första tilldelningen eller ibland avläsning av variabeln.

Man får även bättre stöd av IDEn då det går att få mer Meta-information som hjälper till att höja produktiviteten mångfalt, se exempelvis "IntelliSense" som finns för exempelvis Java i Eclipse och har funnits många år i Visual Studio.

Du får gärna peka på de tekniska fördelar du ser med PHP så ska jag genast undersöka dem. Jag söker hela tiden efter nya kunskaper och best-practise.

För mig är det viktigt att ett programmeringsspråk har:

- Inkapsling för att dölja komplexitet och göra det förutsägbart och därmed "tryggt" att bygga större system
- Modularitet för at enkelt lägga till och förändra funktionalitet
- Stark typning för att hitta fel som programmeraren gör direkt vid kodning/kompilering
- Kompilering för att dels skydda kod mot ändringar av obehöriga och underlätta modularitet
- Objektorienterad paradigm med alla dess övriga fördelar
- Numera finns även namespace för att underlätta modularitet och inkapsling med namnrymder
- Återanvändbarhet (inte "cut and paste" som mångfaldigar underhållsproblem) är ett mycket viktigt område som är ett kapitel i sig


fördelarna jag ser med det är att det går snabbt och enkelt.
det går att köra på simpla webbhotell utan att behöva köra MS-licenser och kör man t.ex ett cms så finns det så sjukt mycket färdigutvecklat.

sen finns det en hel del nackdelar med det, den största som jag ser är t.ex att det är just ett scriptspråk och det går segt när man har extremt mycket kod, eftersom det inte kompileras. kolla på t.ex magento som är ett superstort system byggt med Zend framework och miljontals rader. går superslött, men många löser det den enkla vägen genom att köra bättre hårdvara med SSD diskar och annat.

Conny Westh 2013-06-22 00:08

Citat:

Ursprungligen postat av MRDJ (Inlägg 20472425)
Det du pratar om är systemutveckling i .NET och det har absolut inget med php att göra.

Nej, jag pratar om utveckling i stort. Jag jämför olika programspråk då jag jobbat med väldigt många olika.

Jag har bland annat jobbat med ANSI C, C++, SQL-Windows, Centura, SQL, ett otal olika BASIC-dialekter (DR-Basic, Quick Basic, Visual Basic (Com/Com+), VB.NET), Turbo Pascal, Delphi, Gnu C++, C# .... och fler som jag inte orkar minnas just nu.

Citat:

Ursprungligen postat av MRDJ (Inlägg 20472425)
Jag förstår att du försvarar .NET då det är det du jobbar med, jag har jobbat med både linux/ms .NET och PHP ganska exakt 50/50.

Sure, det är sant, jag är förvisso partisk i och med att jag gillar hela konceptet med .NET och C# och VB.NET. Men jag är inte religiös i konceptet utan jag söker hela tiden utmaningar som kan tillföra förbättringar i mitt yrke oavsett om det är små förfiningar eller större kliv i utvecklingen. Jag har bytt Från dBase till Clipper, och till ANSI C till Visual Objects, till SQL-Window och senare Centura, till Visual Basic och vidare till C#.

Jag är inte rädd att vara med om större omvälvningar, jag brukar själv vara med och styra eller leda in mina kollegor in på nya banbrytande paradigmer, verktyg och miljöer. Men den nya miljön måste absolut tillföra någon viktig fördel, annars finns ingen anledning att byta.

Citat:

Ursprungligen postat av MRDJ (Inlägg 20472425)
Nu märker vi av en trend att MS tappar när det gäller web,mycket på grund av webforms/ viewstate osv. självfallet går det att köra MVC men tyvärr är inte MS längre det naturliga valet när det gäller web. och utvecklingen ser ut att fortsätta i samma bana. många väljer att inte jobba med frontendutveckling i visual studio för att istället använda t.ex sublime, aptana eller liknande.

Viewstate håller jag med var en mindre bra väg att vandra, men den är borta för länge sedan ur MS-state-of-the-art-concept.

Citat:

Ursprungligen postat av MRDJ (Inlägg 20472425)
dels på grund av kostnader, men även andra anledningar. mycket av allt som finns i visual studio har spelat ut sin roll då det segmenterats mellan systemutveckling och webb i form av jsonp-webservices och liknande.

Nu finns WCF (Windows Communication Foundation) som innebär Webservices och som är ett riktigt bra koncept som jag använder och där ingå JSON, REST och XML som användbara delar.

För presentationsskiktet så har vi WPF (Windows Presentation Foundation). MVC4 och Razor-engine kan användas i stället för ASP-engine.

MS ligger ofta långt framme eftersom de tjänar bra med pengar och kan då satsa målmedvetet på att utveckla ny teknik. Det gör att de hela tiden driver på den här utvecklingen.

Det spelar ju viss roll att Bill Gates faktisk i grund och botten är utvecklare själv, det tror i vart fall jag starkt bidrar till att utvecklarna alltid haft en stark ställning i Microsoft strategier.

tartareandesire 2013-06-22 12:30

Citat:

Ursprungligen postat av ConnyWesth (Inlägg 20472426)
Jag följer med utvecklingen av PHP (och andra språk) men tycker PHP har mycket att bevisa för att bli något att räkna med urteknisk synvinkel.

Jag håller med om att språket har utvecklats till det bättre bland annat i och med att de har infört PDO som är ett stort lyft när man jobbar med databaser.

Jag vet inte vad det är som är så speciellt med PHP. Det finns flera riktigt bra språk som har bättre stöd till utvecklaren och som är gratis att använda.

PHP är överlägset störst på nätet helt enkelt, svårare än så är det inte. Därmed är det per automatik ett språk att räkna med. Att det inte skulle kunna användas i större system är naturligtvis också helt felaktigt. Det används idag av flera av de största webbplatserna i Sverige och i världen. Den överlägset mest använda CMS-mjukvaran är byggd i PHP, många e-handelssystem, forummjukvara osv. På nätet regerar PHP fortfarande och det är trots allt nätet som ligger i fokus för de flesta här på WN.

I de fall det är väldigt viktigt med typning så kan man naturligtvis ordna detta på egen hand även i PHP. Möjligheten att skriva bra objektorienterad kod finns också i PHP. Det brukar främst vara dessa högst subjektiva och felaktiga invändningar du för fram den ena gången efter den andra. PHP har lika självklart sina fördelar och nackdelar precis som alla andra språk. Det är varken bättre eller sämre än C#/.NET, att påstå det ena eller det andra är att bedra såväl sig själv som andra. Visst kan man personligen föredra det ena framför det andra, precis som du, jag och många andra gör, men då handlar det om personliga preferenser och/eller kundmålgrupp, ingenting annat.

Flertalet nackdelar med PHP som du tar upp i inlägget ovan är för övrigt knappast varken relevanta eller korrekta. Varför skulle PHP-kod rent generellt inte vara återanvändbar till exempel? Det är väl ändå helt upp till utvecklaren? Likaså med modularitet som också hör dit. Det är inget som ligger i språket utan är helt utvecklarens ansvar och val. Att ett språk är flexibelt är då betydligt viktigare när man har så pass vitt skilda applikationer som på nätet.. Att en stor del av buggar/fel skulle bero på felaktig typning låter också som en ganska märklig slutsats. Felsökning och säkring av viktig funktionalitet går att göra på många olika sätt och hänger också mycket på utvecklaren.

Ingen professionell utvecklare skulle få för sig att generellt påstå att PHP är bättre än C#/.NET (eller något annat språk) och ingen professionell utvecklare skulle få för sig att påstå att C#/.NET är bättre än PHP. I så fall beror det på okunskap eller så är det en ren skär lögn.

pelmered 2013-06-22 13:04

Conny. No offence, men du måste nog uppdatera dina kunskaper här lite.

Citat:

Ursprungligen postat av ConnyWesth (Inlägg 20472426)
För mig är det viktigt att ett programmeringsspråk har:

- Inkapsling för att dölja komplexitet och göra det förutsägbart och därmed "tryggt" att bygga större system

Det går utmärkt att göra i PHP också. Vad är det specifikt du saknar?

Citat:

Ursprungligen postat av ConnyWesth (Inlägg 20472426)
- Modularitet för at enkelt lägga till och förändra funktionalitet

Även det här går utmärkt att göra i PHP. Det finns många (H)MVC-ramverk som visar väldigt bra prov på det här.

Citat:

Ursprungligen postat av ConnyWesth (Inlägg 20472426)
- Stark typning för att hitta fel som programmeraren gör direkt vid kodning/kompilering

Det är inte så många fel som kan härledas till felaktig datatyp. Det är sällan det spelar någon roll om siffran du skickar in i en funktion är en string eller en integer. Typkonverteringen sker nästan alltid automatiskt när det behövs. Vill du specifikt typa en variabel är det väldigt lätt att göra.

Citat:

Ursprungligen postat av ConnyWesth (Inlägg 20472426)
- Kompilering för att dels skydda kod mot ändringar av obehöriga och underlätta modularitet

Enligt mig en väldigt effektiv produktivitetsdödare. Jag vill kunna testa min kod sekunden efter att jag tryckt spara. Jag vill inte behöva vänta på att kompilatorn ska göra sitt. Hur underlättar kompilering för modulariteten?

Citat:

Ursprungligen postat av ConnyWesth (Inlägg 20472426)
- Objektorienterad paradigm med alla dess övriga fördelar

Finns väldigt bra stöd för objektorienterad sedan PHP 5.3 och den blir bättre och bättre för varje version. Det finns i dagsläget få brister när det gäller det här jämfört med Java eller C#.

Citat:

Ursprungligen postat av ConnyWesth (Inlägg 20472426)
- Numera finns även namespace för att underlätta modularitet och inkapsling med namnrymder

Sedan PHP 5.3 finns det stöd för namespaces.

Citat:

Ursprungligen postat av ConnyWesth (Inlägg 20472426)
- Återanvändbarhet (inte "cut and paste" som mångfaldigar underhållsproblem) är ett mycket viktigt område som är ett kapitel i sig

Vet inte riktigt vad du syftar på här. Det finns inga begränsningar när det gäller återanvändning av kod varse sig du använder imperativ eller objektorienterad kod. För att flytta kod använder man "cut and paste" oavsett språk eller plattform.


Det finns däremot andra områden där det finns viss förbättringspotential när det gäller PHP, men jag tycker inte alls du träffar rätt här.

Citat:

Ursprungligen postat av MRDJ (Inlägg 20472427)
sen finns det en hel del nackdelar med det, den största som jag ser är t.ex att det är just ett scriptspråk och det går segt när man har extremt mycket kod, eftersom det inte kompileras. kolla på t.ex magento som är ett superstort system byggt med Zend framework och miljontals rader. går superslött, men många löser det den enkla vägen genom att köra bättre hårdvara med SSD diskar och annat.

Det här är inte ett problem. Det är bara att använda en OP Code Cache som t.ex. APC, XCache eller eAccelerator för att den kompilerade koden ska cachas. Prestandaskilnaden är i stort sett obefintlig om man konfigurerar rätt.

linusoleander 2013-06-22 20:25

Citat:

Ursprungligen postat av ITisGood.se (Inlägg 20472436)
För att flytta kod använder man "cut and paste" oavsett språk eller plattform.

Nej, man använder en pakehanterare.

pelmered 2013-06-22 21:55

Citat:

Ursprungligen postat av linusoleander (Inlägg 20472445)
Nej, man använder en pakehanterare.

Det går ju bara att använda för de saker som finns i pakethanteraren. Man kommer ju aldrig ifrån att använda copy+paste av klasser och filer man själv eller andra skapat och som inte ligger i någon pakethanterare.

MRDJ 2013-06-22 23:01

Citat:

Ursprungligen postat av ITisGood.se (Inlägg 20472436)
Conny. No offence, men du måste nog uppdatera dina kunskaper här lite.


Det går utmärkt att göra i PHP också. Vad är det specifikt du saknar?


Även det här går utmärkt att göra i PHP. Det finns många (H)MVC-ramverk som visar väldigt bra prov på det här.



Det är inte så många fel som kan härledas till felaktig datatyp. Det är sällan det spelar någon roll om siffran du skickar in i en funktion är en string eller en integer. Typkonverteringen sker nästan alltid automatiskt när det behövs. Vill du specifikt typa en variabel är det väldigt lätt att göra.


Enligt mig en väldigt effektiv produktivitetsdödare. Jag vill kunna testa min kod sekunden efter att jag tryckt spara. Jag vill inte behöva vänta på att kompilatorn ska göra sitt. Hur underlättar kompilering för modulariteten?


Finns väldigt bra stöd för objektorienterad sedan PHP 5.3 och den blir bättre och bättre för varje version. Det finns i dagsläget få brister när det gäller det här jämfört med Java eller C#.


Sedan PHP 5.3 finns det stöd för namespaces.


Vet inte riktigt vad du syftar på här. Det finns inga begränsningar när det gäller återanvändning av kod varse sig du använder imperativ eller objektorienterad kod. För att flytta kod använder man "cut and paste" oavsett språk eller plattform.


Det finns däremot andra områden där det finns viss förbättringspotential när det gäller PHP, men jag tycker inte alls du träffar rätt här.



Det här är inte ett problem. Det är bara att använda en OP Code Cache som t.ex. APC, XCache eller eAccelerator för att den kompilerade koden ska cachas. Prestandaskilnaden är i stort sett obefintlig om man konfigurerar rätt.

Jag känner till OP-cache och det finns inbyggt i magento, dock hälper det inte rikigt då det är miljontals rader utan man måste göra en del andra saker för att få det att rulla på bra. men så är det väl kanske med alla stora system, oavsätt om det är PHP eller .NET

pelmered 2013-06-23 00:23

Citat:

Ursprungligen postat av MRDJ (Inlägg 20472453)
Jag känner till OP-cache och det finns inbyggt i magento, dock hälper det inte rikigt då det är miljontals rader utan man måste göra en del andra saker för att få det att rulla på bra. men så är det väl kanske med alla stora system, oavsätt om det är PHP eller .NET

Ja, givetvis är det så att ju mer kod som exekveras varje sidladdning desto mer resurser krävs för det för att leverera sidan. OP-cache gör i många fall extremt stor skillnad. I vissa fall(sidor med mycket kod och lite databasinteraktion) kan man leverera 3-4 gånger så många sidor på samma tid.

Nihilnovi 2013-06-24 09:30

För webben tycker jag inte det finns något som slår PHP med Symfony 2 & Composer tillsammans med AWS, mums! :)

Clarence 2013-06-24 21:58

Du kan göra allt i PHP :) T ex en PHP VM, "Yo dawg, I heard you like PHP. So I built PHP in PHP so you can run PHP on your PHP".

https://github.com/ircmaxell/PHPPHP

De flesta klagomål verkar rätt passande för PHP .. för 5-15 år sedan (PHP 3-5.2 hade vissa av problemen) beroende på vilka kommentarer. Och då var givetvis inte heller andra språk vad de är idag (eller iallafall inte exempel C# och .NET som ingendera fanns för 15 år sedan ...)

CotopaXi 2013-06-25 00:33

Har PHP någon motsvarighet till Pythons PIP eller Rubys GEM ännu (dvs en pakethanterare) ?

pelmered 2013-06-25 08:17

Citat:

Ursprungligen postat av CotopaXi (Inlägg 20472561)
Har PHP någon motsvarighet till Pythons PIP eller Rubys GEM ännu (dvs en pakethanterare) ?

Nja, det som finns är PEAR för moduler till PHP core och Composer för att hantera beroenden(dependencies) av externa mjukvarukomponenter.

Clarence 2013-06-25 11:49

Citat:

Ursprungligen postat av ITisGood.se (Inlägg 20472563)
Nja, det som finns är PEAR för moduler till PHP core och Composer för att hantera beroenden(dependencies) av externa mjukvarukomponenter.

Nja, nu blev det lite fel va? PEAR är bara en riktigt trälig pakethanterare som folk installerade PHPUnit med under 5 år. Nu finns dock i princip alla namnvärda bibliotek och verktyg via composer så man slipper skiten.

PECL däremot är för moduler (extensions) av PHP. Till skillnad från PEAR funkar det faktiskt bra trots att dess uppgift är något krångligare. Också varit en källa för communityn att kunna göra ett rejält bidrag till språket då vissa extensions har blivit en del av språket med tiden.

Conny Westh 2013-06-25 18:48

Citat:

Ursprungligen postat av ITisGood.se (Inlägg 20472436)
Det är inte så många fel som kan härledas till felaktig datatyp. Det är sällan det spelar någon roll om siffran du skickar in i en funktion är en string eller en integer. Typkonverteringen sker nästan alltid automatiskt när det behövs. Vill du specifikt typa en variabel är det väldigt lätt att göra.

Det är över 90% av alla fel man gör vid programmering som är enkla skrivfel så man sätter fel namn på en variabel eller annan identifierare. Använder man en kompilator för ett starkt typat språk upptäcks det redan när man gör sin första kompilering. Det är mycket viktigt att upptäcka felen så tidigt som möjligt.

Citat:

Ursprungligen postat av ITisGood.se (Inlägg 20472436)
Enligt mig en väldigt effektiv produktivitetsdödare. Jag vill kunna testa min kod sekunden efter att jag tryckt spara. Jag vill inte behöva vänta på att kompilatorn ska göra sitt. Hur underlättar kompilering för modulariteten?

Kompilering tar bara någon sekund och när jag exempelvis jobbar med Visual studio med C# så trycker jag på [F6] för att spara och kompilera eller [F5] för att först spara och kompilera och sedan köra programmet i ett svep.

Citat:

Ursprungligen postat av ITisGood.se (Inlägg 20472436)
Finns väldigt bra stöd för objektorienterad sedan PHP 5.3 och den blir bättre och bättre för varje version. Det finns i dagsläget få brister när det gäller det här jämfört med Java eller C#.

Stödet för Objektorientering är uselt i den senaste PHP 5.3.0 som jag kör, stödet har iofs blivit bättre men det är 20 år efter övriga ledande språk på markanden.

Citat:

Ursprungligen postat av ITisGood.se (Inlägg 20472436)
Vet inte riktigt vad du syftar på här. Det finns inga begränsningar när det gäller återanvändning av kod varse sig du använder imperativ eller objektorienterad kod. För att flytta kod använder man "cut and paste" oavsett språk eller plattform.

Det finns däremot andra områden där det finns viss förbättringspotential när det gäller PHP, men jag tycker inte alls du träffar rätt här.

"Cut and paste" räknas inte som återanvändning. Återanvändning är när du har en färdig modul i exempelvis filer som *.DLL, *.LIB, eller *.SO där källkoden är färdigkompilerad och testad och att man kan lita på det. Då kan man återanvända koden genom "anrop" och genom att "ärva", "instantiera" eller dyligt.

Det finns visserligen PECL för att skapa nya utökningar i PHP som jag ännu inte kört. Jag tyckte dock det var knepigt att förstå hur det var uppbyggt, men jag ska kolla vidare på det.

Jag tycker det borde finnas en möjlighet att kompilera till endera till MSIL eller Java Byte-kod eller motsvarande "PHP bytekod/ILkod" alternativt till ren maskinkod för att skapa motsvarigheten till *.DLL, *.LIB eller *.SO filer.

Idag behöver jag kopiera källkoden för att kunna återanvända koden, eller använda "include". Vilket är sämre varianter av "återanvändning".

Jag tycker det är viktigt att det finns denna möjlighet att använda externa tredjepartbibliotek som lätt kan användas vid behov, utan att för den skulll tynga ner "kärnan" av språket/interpretern/kompilatorn.

Dessa externa återanvändbara komponenter är en av de viktigaste delarna vid återanvändning, eller komponenttänkandet.

Citat:

Ursprungligen postat av ITisGood.se (Inlägg 20472436)
Det här är inte ett problem. Det är bara att använda en OP Code Cache som t.ex. APC, XCache eller eAccelerator för att den kompilerade koden ska cachas. Prestandaskilnaden är i stort sett obefintlig om man konfigurerar rätt.

Scriptspråk är i sig sega då de "by definition" är interpreterande och inte kompilerade, så det är i sig ett problem som är så stort att man normalt väljer andra programspråk för att bygga kommersiella applikationer.

Sammanfattningsvis så ser jag några viktiga saker som jag anser PHP måste blir betydligt bättre på:

- Stark typning med möjlighet att ställa in "strict type mode" som man införde i VB när det gick från att vara ett löst typat till starkt typat språk
- Kompilerande (Semi- till intermediate/bytekod eller native)
- Mer komponenttänkande med exempelvis: DLL-, LIB-, eller SO-filer som kan länkas ihop med applikationen
- Mer renodlat objektorienterad språkstruktur

En strategi för att komma närmare detta mål är att helt enkelt renodla/kraftsamla språket så det följer dessa grundläggande principer och låta communityt utveckla komponenter för specifika ändamål.

Som jag upplever det nu så verkar kommunityn behöva spendera mycket tid på att lösa grundläggande problem i språket, i stället för att tillföra nytt värde.

Smart tror jag vore om man väljer att kunna kompilera för MSIL och/eller JavaBytekod så att man underlättar integration med dessa miljöer, så får man automatiskt ett rejält boost i integrationsfrågor med dessa miljöer.

JesperA 2013-06-25 18:52

Citat:

Ursprungligen postat av ConnyWesth (Inlägg 20472625)
Det är över 90% av alla fel man gör vid programmering som är enkla skrivfel så man sätter fel namn på en variabel eller annan identifierare. Använder man en kompilator för ett starkt typat språk upptäcka det redan när man gör sin första kompilering. Det är mycket viktigt att upptäcka felen så tidigt som möjligt.



Kompilering tar bara någon sekund och när jag exempelvis jobbar med Visual studio med C# så trycker jag på [F6] för att spara och kompilera eller [F5] för att först spara och kompilera och sedan köra programmet i ett svep.

Ser inte riktigt varför du vill ha kompilering i PHP för just detta, som det är idag, koda lite, råka skriva fel variabelnamn eller funktionsnamn och nästa gång du refreshar webbläsaren så får du ett felmeddelande, bra mycket snabbare än att hitta det genom en kompilering. Dessutom, kör du någon vettig IDE så kan du upptäcka felaktiga variabelnamn eller funktionsnamn redan där. Ditt problem är ett ickeproblem om man använder sina tillgängliga verktyg på rätt sätt.


Dessutom, du kanske skall uppdatera till senaste PHP version istället för att klaga på något som är förbättrat i versionerna efter den versionen du kör. Känns lite som att klaga på dagens BMW 3 serie bara för att en BMW 3 serie från 80-talet är skit idag.

Conny Westh 2013-06-25 19:24

Citat:

Ursprungligen postat av JesperA (Inlägg 20472626)
Ser inte riktigt varför du vill ha kompilering i PHP för just detta, som det är idag, koda lite, råka skriva fel variabelnamn eller funktionsnamn och nästa gång du refreshar webbläsaren så får du ett felmeddelande, bra mycket snabbare än att hitta det genom en kompilering. Dessutom, kör du någon vettig IDE så kan du upptäcka felaktiga variabelnamn eller funktionsnamn redan där. Ditt problem är ett ickeproblem om man använder sina tillgängliga verktyg på rätt sätt.


Dessutom, du kanske skall uppdatera till senaste PHP version istället för att klaga på något som är förbättrat i versionerna efter den versionen du kör. Känns lite som att klaga på dagens BMW 3 serie bara för att en BMW 3 serie från 80-talet är skit idag.

Jag kör den version som kom den 19 Juni, dvs 5.5.0 (inte 5.3 som jag skrev i förra inlägget), så jag känner inte till om det kommit någon senare version.

Anders Larsson 2013-06-25 21:41

Buhu, min pappa är starkare än din pappa.

gregoff 2013-06-25 22:06

Citat:

Ursprungligen postat av Anders Larsson (Inlägg 20472642)
Buhu, min pappa är starkare än din pappa.

Det bästa som skrivits i denna tråden!

JesperA 2013-06-25 22:09

Citat:

Ursprungligen postat av gregoff (Inlägg 20472647)
Det bästa som skrivits i denna tråden!

Så varken du eller han vet i vilket sceenario man använder "min pappa är starkare än din pappa", det uttrycket passar nämligen inte in på något som skrivits i denna tråden.

Conny Westh 2013-06-26 03:01

Jag har nu även testat att installera Netbeans från Oracle och där finns en plugin till IDE-miljön för att köra PHP.

Då får man en hyfsad källkodseditor med färgade nyckelord, edit autocomplete och IntelliSense. Men detta är inte något som ingår i PHP utan en oberoende leverantör (Läs Oracle) som har bidragit med i en IDE för Java. Netbeans har även stöd för att editera Java och Scala-kod.

Jag saknar fortfarande:

- Stark typning (strict mode, enforced declations of identifiers)
- Kompilering (Semi- eller Native-)
- "Äkta" komponenter
- "Fullfjädrad" objektorientering

Med "äkta" komponenter menar jag DLL, LIB eller SO-filer (eller motsvarande) som är skrivna i PHP och kompilerade, som man kan länka in statiskt eller dynamiskt som färdigtestade komponenter. Jag räknar inte komponenter skrivna i C/C++ och länka in dem i php.ini som "extensions" men då är ju dessa komponenter skrivna i ett annat språk än PHP).

Conny Westh 2013-06-26 03:13

Såg nu att det faktiskt är fler än jag som saknar objektorienteringen i PHP, jag hittade ett projekt på Sourceforge som kallar sig PHP++ (http://sourceforge.net/projects/php-plus-plus/) ....

Conny Westh 2013-06-26 04:20

Försöker installera Wix v3.8.611.0 (på 32-bitars MS Windows 7) för att få in PEAR (för att kunna köra PHP++) men får virusvarning (när den kommit till ca 50% av installationen) av AVST:

Kod:

Infection Details

URL:
http://wixtoolset.org/releases/3.8.611.0...

Process:
C:\Projects\Conny\PHP \wix38.611.0(2013...
Infection: Win32:MalOb-CA [Cryp]

Är detta falsklarm eller är det fler än jag som får samma ....???

Testade med v3.7.1224.0 som funkade bättre....

Clarence 2013-06-26 09:07

Citat:

Ursprungligen postat av ConnyWesth (Inlägg 20472663)
Såg nu att det faktiskt är fler än jag som saknar objektorienteringen i PHP, jag hittade ett projekt på Sourceforge som kallar sig PHP++ (http://sourceforge.net/projects/php-plus-plus/) ....

Jag tror du borde gått och lagt dig innan du hittade detta lilla underverk med sina frameset-klasser (!?). 12-13 år på nacken kan också säga sitt, även fast det var totalt skräp redan när det skrevs.

"Fullfjädrad objektorientering" saknar du. Ehm, är det meningen att man ens ska svara på det? Ditt svar kommer bli att gå igenom precis vilka detaljer som saknas jämfört med C# och sedan kan man göra samma sak åt andra hållet och det förändras till ett prat om vilket ens älsklingsspråk är. Historiskt sett har det varit väldigt dåligt, men håller man sig borta från kod från andra decennier ser det bättre ut.

Att vilja ha alla komponenter kompilerade i ett okompilerat språk, då kanske det är dags att sluta titta på språket. Alternativet är väl att man tittar på fördelarna med att slippa svära över DLLs man saknar källa för eller varför man sitter en minut med kaffekoppen varje gång man vill testköra sin lilla ändring. Laddar du ner bra och välskrivna bibliotek (med Composer!) så har du en 100% code coverage på testerna. Du kan själv validera detta och kika på koden så du vet vad det är du gjort dig beroende av.

Det är ett val som uppenbarligen varit väldigt framgångsrikt att inte kompilera hela projekt så fort något ändrats. Det ger lite sämre optimeringar och validering. För valideringen kör du en PHP linter (php -l) och relevant kodningsstandard med PHPCS. För att testa integrationen så skriver du tester, som faktiskt täcker upp det som är relevant till skillnad från en kompilator som bara kan testa det allra mest grundläggande.

Nihilnovi 2013-06-26 10:04

Kompilering är enbart bra om man inte kan motivera sig att ta ställa sig upp och ta en kaffe genom andra metoder.

Skämt åsido, så är väl https://github.com/facebook/hiphop-php det närmaste du kan komma till "kompilerad" php kod, inte för att jag förstår varför du skulle behöva det om du inte planerar ett system med en miljard användare.

JesperA 2013-06-26 11:20

Citat:

Ursprungligen postat av ConnyWesth (Inlägg 20472662)
Med "äkta" komponenter menar jag DLL, LIB eller SO-filer (eller motsvarande) som är skrivna i PHP och kompilerade, som man kan länka in statiskt eller dynamiskt som färdigtestade komponenter. Jag räknar inte komponenter skrivna i C/C++ och länka in dem i php.ini som "extensions" men då är ju dessa komponenter skrivna i ett annat språk än PHP).

Styrkan i PHP är ju just att det i princip inte finns några dependencies överhuvudtaget, och
att det är så sjukt lätt att utveckla i PHP så tar inte många sekunder att bygga upp något semiprofessionellt.

Kan du nämna ett par libraries som du tror skulle vara bra om det fanns i PHP?

Conny Westh 2013-06-26 11:51

När man söker tillräckligt länge så hittar något intressant till slut. Här (http://phalanger.codeplex.com/) hittade jag en kompilator som kompilerar PHP till .NET och som integrerar PHP i Visual Studio.

Den integrerar PHP med .NET type system så man kan använda Partial Class m.m.

Nu ska jag grotta ner mig i detta och se vad det kan ge för utdelning....

Conny Westh 2013-06-26 12:02

Citat:

Ursprungligen postat av Clarence (Inlägg 20472676)
Jag tror du borde gått och lagt dig innan du hittade detta lilla underverk med sina frameset-klasser (!?). 12-13 år på nacken kan också säga sitt, även fast det var totalt skräp redan när det skrevs.

"Fullfjädrad objektorientering" saknar du. Ehm, är det meningen att man ens ska svara på det? Ditt svar kommer bli att gå igenom precis vilka detaljer som saknas jämfört med C# och sedan kan man göra samma sak åt andra hållet och det förändras till ett prat om vilket ens älsklingsspråk är. Historiskt sett har det varit väldigt dåligt, men håller man sig borta från kod från andra decennier ser det bättre ut.

Att vilja ha alla komponenter kompilerade i ett okompilerat språk, då kanske det är dags att sluta titta på språket. Alternativet är väl att man tittar på fördelarna med att slippa svära över DLLs man saknar källa för eller varför man sitter en minut med kaffekoppen varje gång man vill testköra sin lilla ändring. Laddar du ner bra och välskrivna bibliotek (med Composer!) så har du en 100% code coverage på testerna. Du kan själv validera detta och kika på koden så du vet vad det är du gjort dig beroende av.

Det är ett val som uppenbarligen varit väldigt framgångsrikt att inte kompilera hela projekt så fort något ändrats. Det ger lite sämre optimeringar och validering. För valideringen kör du en PHP linter (php -l) och relevant kodningsstandard med PHPCS. För att testa integrationen så skriver du tester, som faktiskt täcker upp det som är relevant till skillnad från en kompilator som bara kan testa det allra mest grundläggande.

När jag försöker sätta mig in i ett nytt program så testar jag det mot alla best practises som jag känner till, och jag håller verkligen på att gå till botten med att hitta fördelar med PHP, men det är svårt.

Objektorientering, kompilering, komponenttänkande är mycket starka best practises om det kommer ett nytt programspråk så måste det tillföra något som gör det värt att använda. Det finns ju ingen anledning att gå baklänges...

När man läser råsågningarar av Objektorientering, Kompilering och Komponenttänkande så undrar man; "You been freeze-dried or doin' hard time?" (Citat från Hartbreak Ridge med Clintan) ... under de senaste 30 åren eller vad?

linusoleander 2013-06-26 12:03

Citat:

Ursprungligen postat av JesperA (Inlägg 20472683)
Styrkan i PHP är ju just att det i princip inte finns några dependencies överhuvudtaget

Jag tror inte Conny vill ha paketberoenden till PHP utan till programvarorna han jobbar mot. Behöver han te.x har stöd för databasen Casandra så laddar han ner en färdig paketerad DLL-fil där allt finns (te.x ORM, drivrutiner) för att sedan säga till PHP att inkludera filen.

Citat:

Ursprungligen postat av JesperA (Inlägg 20472683)
Kan du nämna ett par libraries som du tror skulle vara bra om det fanns i PHP?

Jag kan inte svara för Conny, men i princip allt som inte ingår i PHP per default. Möjligheten att skriva extensions i C/C++ för att sedan bygga ett färdig paket vore heller inte helt fel.

Clarence 2013-06-26 12:19

Citat:

Ursprungligen postat av ConnyWesth (Inlägg 20472689)
När jag försöker sätta mig in i ett nytt program så testar jag det mot alla best practises som jag känner till, och jag håller verkligen på att gå till botten med att hitta fördelar med PHP, men det är svårt.

Objektorientering, kompilering, komponenttänkande är mycket starka best practises om det kommer ett nytt programspråk så måste det tillföra något som gör det värt att använda. Det finns ju ingen anledning att gå baklänges...

När man läser råsågningarar av Objektorientering, Kompilering och Komponenttänkande så undrar man; "You been freeze-dried or doin' hard time?" (Citat från Hartbreak Ridge med Clintan) ... under de senaste 30 åren eller vad?

Om du inte kan titta på ett nytt interpreterat språk utan att klaga på att det inte är kompilerat då är det knappast någon poäng att ens börja nysta i det? Råsågningar av objektorientering eller komponentbaserad kod har du knappast sett av mig va?

Gällande kompilering så är det snarare så att du kan rikta ditt citat mot dig själv. 2013 är 75%+ av webbsajter skrivna i en miljö där man inte förkompilerar koden. Och bara för att vara tydlig så är det inte så att jag av princip är emot kompilering.


Alla tider är GMT +2. Klockan är nu 00:35.

Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson