WN

WN (https://www.wn.se/forum/index.php)
-   Serversidans teknologier (https://www.wn.se/forum/forumdisplay.php?f=4)
-   -   Pakethanterare för PHP? (https://www.wn.se/forum/showthread.php?t=1047601)

Nerix 2011-04-09 15:47

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.

emilv 2011-04-09 15:48

Vad är det du ska ha pakethanteraren till? vilken sorts paket handlar det om?

Nerix 2011-04-09 16:05

Citat:

Ursprungligen postat av emilv (Inlägg 20401386)
Vad är det du ska ha pakethanteraren till? vilken sorts paket handlar det om?

Plugins kanske är ett bättre namn.

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"

group :production, :development, :test do
  gem "rails", "~> 3.0.5.rc1"
  gem "nokogiri"
  gem "haml"
  gem "oauth"
  gem "aws-s3"
  gem "delayed_job"
 
  # Fixar till 1.9.2-buggen
  gem "yui-compressor", :git => "git://github.com/ner/ruby-yui-compressor.git", :require  => "yui/compressor"
 
  gem "whenever",      :require => false   
  gem "jammit"
  gem "movie_searcher", "~> 0.1.4"
  gem "undertexter",    "~> 0.1.5"
  gem "torrents",      "~> 1.0.11"
  gem "oauth-plugin",  "~> 0.4.0.pre1"
  gem "paperclip",      "~> 2.3"
  gem "rest-client",    "~> 1.6.1"
  gem "barista",        "~> 1.0"
 
  gem "ruby-tmdb", :git => "/Users/ber/Documents/Projekt/ruby-tmdb"
  gem "imdb_vote_history"
  gem "json"
  gem "osdb"
  gem "simple_form"               
  gem "mysql2"
  gem "kaminari"
  gem "jquery-rails"
end

group :production do
  gem "dalli"
end

group :development do
  gem "ruby-debug19"
  gem "ruby-growl"
  gem "hirb"
  gem "sqlite3"
end

group :test do
  gem "rspec"
  gem "rspec-rails"
  gem "autotest-standalone"
  gem "autotest-rails"
  gem "autotest-growl"
  gem "autotest"
  gem "factory_girl_rails"
end


hnn 2011-04-09 23:57

Jag tror du vill ha PEAR eller PECL :)

http://pear.php.net
http://pecl.php.net

Nerix 2011-04-10 00:09

Citat:

Ursprungligen postat av hnn (Inlägg 20401433)
Jag tror du vill ha PEAR eller PECL :)

http://pear.php.net
http://pecl.php.net

Med tanke på hur stort PHP är så borde man tycka att dom skrapat ihop mer än 800 (!) paket.

Någon som har nått alternativ, eller är det så här de ser ut?

abergman 2011-04-10 00:13

Citat:

Ursprungligen postat av Nerix (Inlägg 20401435)
Med tanke på hur stort PHP är så borde man tycka att dom skrapat ihop mer än 800 (!) paket.

Någon som har nått alternativ, eller är det så här de ser ut?

Men vilka funktioner i paketen är det du är ute efter?

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.

Clarence 2011-04-10 01:10

Citat:

Ursprungligen postat av Nerix (Inlägg 20401435)
Med tanke på hur stort PHP är så borde man tycka att dom skrapat ihop mer än 800 (!) paket.

Någon som har nått alternativ, eller är det så här de ser ut?

Om du vill ha någon pakethanterare så är det så det ser ut. Nöjer du dig däremot med att ta 1 manuell minut per projekt har du betydligt fler bibliotek tillgängliga än i de flesta andra språk.

Nerix 2011-04-10 02:06

Citat:

Ursprungligen postat av abergman (Inlägg 20401436)
Men vilka funktioner i paketen är det du är ute efter?

Jag hade tänkt mig något likt Rubygems.org

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:

Ursprungligen postat av abergman (Inlägg 20401436)
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.

Vi har nog lite olika krav på koden som ska användas i produktion.
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:

Ursprungligen postat av Clarence (Inlägg 20401437)
Nöjer du dig däremot med att ta 1 manuell minut per projekt har du betydligt fler bibliotek tillgängliga än i de flesta andra språk.

En minut per projekt, vilket enligt koden jag nyss postade är 190 minuter, och det är varje gång jag ska kolla efter uppdateringar.

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.

Jine 2011-04-10 06:21

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.

abergman 2011-04-10 10:45

Citat:

Ursprungligen postat av Jine (Inlägg 20401447)
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.

Jag kan bara hålla med här, i princip alla grundstenar som behövs finns reda i PHP, sedan får man som utvecklare bygga det mesta själv, om man inte går med ett ramverk eller CMS, typ CodeIgniter, Wordpress eller drupal.

Det är så PHP ser ut, å gott och på ont.


Alla tider är GMT +2. Klockan är nu 11:54.

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