Hier im Forum bekommt ihr bei euren fragen schnelle hilfe.Hier geht es rund um das Web SeitenProgrammieren.Alles rund ums Javascript,Html,Php,Css und Sql.Auf fast allen Fragen haben wir eine Antwort.
Der Soforthilfe-chat verspricht das ,was sein Name sagt. Hier sind Leute Online die sofort ihre hilfe anbieten.Seht in der OnlineListe nach und wenn einer Online ist werdet ihr auch antwort bekommen. Admine ,Moderatoren und Helfer sind unsere Spezialisten in Sachen Web Programierung
71 Unwetterwarnungen in Deutschland
Die Datenbank wurde zuletzt am 02.08.2020 17:34:28 aktualiesiert
71

Blick über den Tellerrand: LINQ

Ich habe aktuell beruflich wenig mit PHP zu schaffen, erklärt wohl auch die momentane Post-Flaute etwas. Joa, der angenehme Nebeneffekt davon ist aber, dass man beim Rumschlagen mit anderen Sprachen auch andere Konzepte verinnerlicht. So bin ich im Microsoft C# – Umfeld auf LINQ gestoßen. Bedeutet Language INtegrated Query. Was erstmal so unspektakulär klingt, ist eine verdammt mächtige Abfragesprache für Container (Arrays, Listen, Collections …).

LINQ?

string[] colors = new string[] { "Red", "Green", "Blue", "Blue", "Brown", "Pink", "Black" };  var result = (from c in colors                where c.StartsWith("B") && c.Contains("l") && c.Length > 3               orderby c descending                select c).Distinct();  foreach (var color in result) {     Console.WriteLine(color); } /* Blue Black */  

Als ich das das erste mal gesehen hab, saß ich schon etwas mit offenem Mund da. Abgesehen von der Anordnung der Kontrukte from / where / order by / select sieht das schon sehr nach SQL aus. Keine 5-fach verschachtelten Schleifen mehr, um auf komplexen Strukturen irgendwas zu errechnen / suchen. Auch Aggregationsfunktionen und sogar Joins hauen damit hin. Dadurch, dass LINQ fest mit der Sprache verbandelt ist, gibt es auch direkt beim Programmieren der Query schon Fehlerhinweise. Dabei ist nur eine einzige include-Direktive nötig und die ganze Magie steht zur Verfügung:

using System.Linq; 

Und PHP?

Nagut, einen komplett PHP-freier Post ists nun doch nicht. Denn es gibt auch PHPLinq. Logischerweise muss es sich dabei um eine Eigenbaulösung handeln, die das C# – LINQ – Verhalten zu simulieren versucht. Schließlich kennt PHP von Grund auf solche Konstukte nicht. In 16 Dateien und 120 KB wird also Gas gegeben.

Ich klaue mal frech ein kleines Codebeispiel von der Examples-Seite:

require_once 'PHPLinq/LinqToObjects.php';  $names = array("John", "Peter", "Joe", "Patrick", "Donald", "Eric");   $result = from('$name')->in($names)->where('$name => strlen($name) < 5')->select('$name');   print_r($result); 

Die Jungs haben sich also schon Mühe gegeben. Mehr Verwendungsbeispiele gibts in den im Download enthaltenen Tests. Aber mal ehrlich… So richtig könnte ich mich im Produktiveinsatz nicht dran gewöhnen. Das geht schon damit los, dass ich erst zur Laufzeit sehen kann, ob es einen Fehler gab. Und dann ists halt trotz allem noch ein externes Paket. Aber gut, es mal gesehen zu haben.