![]() |
Pakethanterare för PHP?
Jag tänkte ge mig på PHP men har inte hittat någon ordentlig pakethanterare.
Jag letar efter något enkelt sätt att installera paket från en centraliserad server som hanterar paketberoenden för en, lite som apt-get. De borde ju finnas någon, med tanke på hur stort PHP-community:t är. Jag har f.ö redan kollat på Pear. Dom har tyvärr för lite paket för att göra de användbart. |
Vad är det du ska ha pakethanteraren till? vilken sorts paket handlar det om?
|
Citat:
Jag letar efter ett automatiserat sätt att installera plugins från en centraliserad punk. Pakethanteraren ska, som nyligen nämnt, även hålla koll på paketberoenden. Ungefär så här. Jag skriver en applikation. Applikationen i sig är beroende av paket A, B och C. Paket A är beroende av paket D version 1.0, paket B är beroende av paket D version 1.1 och paket C är beroende av paket E. Den ska då, precis som apt-get, installera alla paketberoenden utan konflikter. Här är ett exempel från ett tidigare projekt skrivet i Ruby. Filen innehåller alla paketberoenden för projektet i fråga, paketen i sig vet själva vad dom har för beroenden. I exemplet så plockas paket från Github, Rubygems och en lokal mapp. Inkl alla underliggande beroenden så installeras drygt 190 paket. Kod:
source "http://rubygems.org" |
|
Citat:
Någon som har nått alternativ, eller är det så här de ser ut? |
Citat:
Kolla på php.net så ser du vilka funktioner som existerar, och sen får du googla lite klasser om det är funktioner du vill ha som inte redan finns. |
Citat:
|
Citat:
Drygt 22k plugins. Att uppfinna hjulet på nytt för varje gång känns ju aningen getto. Sedan så saknar jag expertis inom varje område, så att överlämna arbete till 3:e part är något jag gör med glädje. Citat:
Ett plugin ska, enligt mig, var testad, dokumenterad, ligger under en vettig licens och vara distribuerad via ett ordentligt nätverk. Ett kodstycke skrivet av en nybörjare utan tester postat på ett forum ligger inte under den kategorin. Citat:
I min värld går detta via ett kommando på drygt 5 sekunder. Jag ger språket 24h till, sedan drar jag mig tillbaka. |
Sätt upp en egen apt-get repo?
Nerix: Saken är väl den att PHP har mycket inbyggt direkt. Du behöver inte hämta gem's för t.ex. json, mysql, sqlite osv. Därav att det "bara" är 800(!) phpmoduler som finns tillgängliga. Om du saknar något i PHP, säg gärna till. Jag har inte hittat någon direkt saknad support på ett par år. OAuth osv, laddas ner som php-klasser med vettig licens, dokumentation och exempel, behövs inga moduler för det. EDIT: Drupal har iof ett commandline verktyg för precis det här, men det är då bundna moduler till just drupal - verktyget heter "drush" EDIT2: Det svåra i att skapa ett sånt här verktyg är att du isåfall behöver utgå ifrån en förutbestämd katalogstruktur, då PHP är så fritt finns det inga direkta verktyg för att göra det. Koda gärna ett, och släpp under vettig licens så kan jag både utöka det och hjälpa dig förbättra :) Kunde vara nice att ha. |
Citat:
Det är så PHP ser ut, å gott och på ont. |
Verkar som det är ett ramverk du efterfrågar, till exempel Zend Framework som har färdiga bibliotek och funktioner för det mesta du kan tänka dig. Fördelen med Zend är att du har tillgång till biblioteken fullt ut utan att behöva hoppa på Zend Frameworks sätt att implementera MVC.
|
Citat:
Sen är det, oavsett vilka språk man vill byta mellan, vissa saker som görs sämre eller inte alls i ett nytt språk. Är man inte öppen för det och ger det en extra dag när man möter motgångar så är det nog bättre att bara hålla sig på den trygga sidan språkbarriären. |
Citat:
Rubygems är plattformsoberoende. Citat:
Jag har själv varit med och skrivit patchar för mongodb. Ändringarna kördes in i stable på mindre än 1 vecka. Skulle mongodb eller mysql i stället varit native så skulle patchen förmodligen inte mergas in förrän nästa version, vilket när det kommer till Ruby och PHP tar sin lilla tid. Citat:
whenever - Möjliggör crontasks direkt från Ruby. Capistano - Deploy-verktyg eventmachine - Eventhantering i Ruby undertexter - Inofficiellt API för undertexter.se spotify - Spotify-klient Hallon - Bryggan mellan libspotify och Ruby. haml- Ett alternativ till rent HTML BSON - Den binära version av JSON Det jag menar är att jag kan hitta allt och lite till, full dokumenterat, med tester som kräver att jag varken kopierar någon kod eller bryter mot några skumma, möjligen icke existerande licensavtal. Skulle paketet vara utdaterat och finns på Github (vilket många utav paketen gör) så kan jag utan några konstigheter göra forka projektet, fixa felet, göra en pull-request var vid ägaren (förhoppninsgvis) mergar in min ändring. Vart efter paketet pushas upp till rubygems och finns tillgängligt för allmänheten. En viktig del är även att jag får cred för patchen jag skrev, något som både Rubygems och Github fixar. Lätt som en plätt. Sedan kanske det är värt att nämna att siter som Github ökar överlevnaden för ett projekt. Jag har sedan drygt ett år tillbaka valt att publicera alla smådelar för mina projekt som egna gems. Små finesser som byggt efter alla konstens alla regler. Jag kan där efter publicera paketet och låta OSS-comunity:t vidareutvecklare projektet. Jag menar; chansen att fler söker efter lösningar på samma problem som jag är ganska stor. Finns det fler användare så finns det även fler utvecklare som kan jobbare vidare på projektet. Jag tror att det jag saknar mest är implementeringen av alla dessa API:er. Om man te.x får för sig att skriva en site som jobbar mot eBay så kan man ge sig f*n på att någon redan har skrivit en gem. Plockade bara något ur skjortärmen, har ingen aning om träffarna är någon att ha. Kod:
→ gem search -r ebay Citat:
Själv använder jag OmniAuth. Stöd för auktorisering mot ett 30-tal siter. Implementeras med ett fåtal rader kod. Citat:
Paket som jag installerar lägger sig i en dold-mapp i min hem-katalog. Exakt hur projektet är uppbyggt behöver jag aldrig bry mig om. För att distribuera en s.k gem så används en gemspec-fil där namnet på författaren angivits och även vart huvud-filerna ligger. Här är ett exempel Citat:
Utvecklingstiden måste ju vara flera gånger vad det skulle tagit att implementera samma funktionalitet i Python, Ruby eller exempelvis Haskell. Citat:
Citat:
Enligt en kompis till mig så innehåller listan knappt 2% standardbibliotek. (4 av 194) json, mysql, sqlite3, xml-simple Var av json-paket inte längre behövs i Ruby 1.9. Sedan så förstår jag inte riktigt hur jag ska få api-get att fungera under något annat än Linux. Hur gör jag i OS X, eller Windows om jag väljer att sätta mig där? Citat:
Själv så kör jag dock alltid på de nyaste versionerna, skulle testerna för applikationen inte gå igenom efter en uppdatering så ser jag till och fixa felet bara. @alla Det skulle vara väldigt intressant och se hur ni själva bidragit till ert community. Hur publicerar ni er kod om ingen hittar den te.x? Jag har själv ett 70-tal OSS-projekt igång med dryga 6000 nedladdningar på Rubygems de senaste månaderna. Intressant diskussion f.ö, jag hoppas inte att ni tar det allt för personligt :) |
Visa förslag på vad du vill ha i PHP som du saknar.
Det finns massor med PHP-classer, säkert mer än 22k dessutom. phpclasses.org rekommenderas av vissa, men hatas av andra, varierande innehåll dvs. Github har väl ett par miljoner projekt med PHP-kod med, frågan är dock vad du letar efter. Angående paket och paketberoende så undrar jag vilken faktisk funktionalitet du saknar, att du inte hittar matchande paket med identiskt namn kan jag förstå - men vad är det du EGENTLIGEN vill ha. Skriv gärna lista. Ang. apt-get så var jag snäll och googlade åt dig; http://www.finkproject.org/ |
Här är något läsvärt, för alla egentligen - men speciellt dig Nerix:
http://www.oreillynet.com/ruby/blog/...ck_to_p_1.html Citat:
|
Jaha, trådskaparen urartade snabbt till en flamberingstråd. Gäsp. Lås och släng.
|
Citat:
Citat:
Citat:
Citat:
Citat:
Citat:
Citat:
Citat:
Citat:
Citat:
Citat:
Jag är inte ute efter att övertyga dig om att PHP är bättre. Däremot så tycker jag att hela din insats i att ge dig på PHP verkar baseras på att allt ska fungera precis likadant som det språk du förälskat dig i. Om man inte kan överge det till en början tror jag inte det är någon större poäng med att försöka utöka sin värld med fler språk. |
Citat:
Q.E.D Sedan handlar inte diskussionen om vad som finns. Läs om tråden igen. Jag är nämligen helt säker på att alla obskyra exempel på paket som jag tagit upp finns tillgängliga i PHP. Citat:
Citat:
Dessa pakethanterare är fortfarande inte plattformsoberoende och låter mig inte specificera vilka paketberoenden mitt projekt består av. Citat:
Kolla bara på Roller Coaster Tycoon. Större delen av de tre första spelen är skriven i just ASM. Sedan så kan man fråga sig vad Rails har med saken att göra. Citat:
Bryggor mellan ett språk och ett projekt, där projektet kan tänkas utvecklas snabbare än språket bör rent generellt utvecklas vid sidan av. Chansen att någon gör någon funky i String-klassen i valfritt språk är med stor sannolikhet mindre än att något funky (användbart) implementeras i MongoDB. Citat:
Hur sätter du mongo som ett paketberoende i din applikation då? Citat:
Möjligen att Lasse hos Lasses Fisk inte bryr sig om copy ´n paste-kod från någon random-forum, men jobbar man med lite större projekt där kvaliteten på koden är otroligt viktig så finns det (tyvärr) ingen möjlighet att använda kodbasen. Sedan så får du gärna utveckla det där med automatiska uppdateringar. Citat:
Att kopiera kod tillsammans med alla paketberoenden tar tid, vilket kanske inte är ett problem om projektet är litet, men ställer till aningen med problem i lite större kodbaser. Ta te.x koden jag postade i tidigare inlägget. Projektet är relativt litet, ändå hade jag angivit drygt 30 gems. Varje gems beroende resulterade i slutändan i 190 paket. Citat:
Ta bara en titt i feedback-forumet. Det är ju inte direkt rocket-science. :) Citat:
I min värld så ökar även implementeringstiden i samband med att mer kod behöver skrivas. Citat:
Som tidigare nämnt så handlar det inte om något är möjligt eller ej utan hur snabbt och enkelt det faktiskt är att utföra något. Citat:
Här är listan: http://pastebin.com/Hfk9QCAn Citat:
Citat:
Citat:
Jag skulle dock inte få för mig att göra samma sak i ett större projekt, där jag har folk över mig. Ni får ursäka min möjligen aggressiva ton, jag känner att jag hade aningen svårt att linda in mina svar i silkeshandskar :) |
Du dissar PHP till fördel för Ruby, om nu PHP suger i dina ögon, varför ge dig på att försöka lära dig det?
Jag föredrar Skånemejeriers mjölk, vilken föredrar du? Jag föredrar OLW Sourcream & Onion, vilken föredrar du? Ge upp med att försöka se ned på saker, försök att se möjligheterna, är du rädd att slita på tangentbordet, så fortsätt med att koda Ruby och ge fan i PHP, och tänk inte ens tanken på att ge dig på Assembler... |
Jag håller med Jonas.
Du verkar ha bestämt dig redan sen innan du startade tråden, varför ens försöka? Det finns inget vi kan säga som kan få dig släppa bilden över att PHP är sämst. Nu råkar det inte vara min världsbild, men jag anser du får ha din kvar, och om du är sådär inbiten så får du nog fortsätta ha det. Jag ger mig, lycka till! |
Citat:
Ställer mig också frågande till vad du egentligen ville ha ut av tråden, Nerix... Du vet ju uppenbarligen redan att Ruby är fullständigt överlägset på alla sätt och vis. ;) |
Att byta plattform på vår största sajt från Ruby till PHP var det bästa jag gjort!
|
Citat:
|
|
Citat:
Eftersom jag inte själv kodar ruby var jag tvungen att hitta någon som kunde hjälpa mig. Jag bad om offerter från flera oliak webbyråer, träffade både frilansare och byråer, flera av dom började försöka bygga vidare på sajten men alla gav upp för att dom tyckte att projektet var "för omfattande". Communityt kring ruby är mycket mindre än det runt PHP. Tillgången till kompetens inom det språk sajten är byggd i är för mig en viktig faktor. Rails crashade för oss några gånger i veckan vilket resulterade i att sajten stod till. På grund av en konflikt mellan mig och webbyrån som gjorde skitjobbet (skrev om det här på WN men dom trådarna har tagits bort) kunde jag inte ta hjälp av dom för att fixa det, ingen av dom tre webbyråer och två frilansare som kollade på det kunde lösa det utan rekommenderade mig att via cronjobs starta om rails-demonen en gång om dagen eftersom den nästan aldrig crashade inom 24 timmar. |
Alla tider är GMT +2. Klockan är nu 03:20. |
Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson