Kohana

Kohana
Type Ramme til opbygning af webapplikationer
Udvikler Kohana Team [1]
Skrevet i PHP
Operativ system Cross platform
nyeste version 3.3.6 [2] (25. juli 2016)
Licens BSD
Internet side kohanaframework.org

Kohana (tidligere Blue Flame )  er en open source PHP5 - webramme , der bruger HMVC (Hierarchical Model View Controller) arkitektonisk model. Dens mål er at være sikker, let og nem at bruge [3] .

Webudviklermagasinet PHP Inside anerkendte Kohana som et " Editor 's Choice ... for arkitektur, hastighed og fællesskab " [4]

Historie

Kohana - projektet blev skabt som en forgrening af CodeIgniter PHP-rammeværket under navnet Blue Flame [5] . Hovedårsagen til gaflen var skiftet til en mere åben udviklingsmodel for offentligheden, fordi mange brugere var utilfredse med udviklingshastigheden og fejlrettelser i CodeIgniter. Rick Ellis  - skaberen og ejeren af ​​CodeIgniter - var glad for at se en forgrening af sit projekt, men nægtede at hjælpe; han pressede det nye projekt til at skabe sin egen dokumentation og foreslog, at projektet skulle omdøbes. [6] I juli 2007 blev Blue Flame omdøbt til Kohana for at undgå fremtidige problemer med ophavsret [7] .

Navnet Kohana blev valgt, da udviklerne begyndte at kigge gennem indianske ordbøger for at vælge et ord, der ikke ville krænke ophavsretten. Kohana betyder " hurtig " på Sioux -sproget .

I april 2014 udtalte hovedudvikleren af ​​shadowhand [ 8] , at udviklingen af ​​projektet er afsluttet, men rammerne fortsætter med at blive udviklet og understøttet af fællesskabet [9] , og opdateringer bliver fortsat udgivet på den officielle hjemmeside.

Den 4. februar 2017 blev projektet lukket, hovedudvikleren "shadowhand" annoncerede dette på siden med sætningen "Kohana is DEAD".

Efter at projektet blev lukket, overvejede fællesskabets medlemmer forskellige muligheder for migrationsrammer, og som det viste sig, ville enhver migrering være meget vanskelig. Derfor skabte medlemmer af samfundet en forgrening af projektet, som fik navnet Koseven. Koseven kan fungere som erstatning for Kohana-motoren i projekter, der stadig bruger den. Hovedmålet med projektet er at rette fejl og understøtte nye versioner af PHP, mens det anbefales at tilføje ny funktionalitet gennem udvidelser. [ti]

Funktioner

Teknologi

Versioner

Udviklingsgrene

I øjeblikket udvikles tre grene parallelt [11] :

Forskelle mellem versioner

Forskellen mellem Kohana og CodeIgniter
  • Strenge PHP5 OOP . Antager mange fordele: synlighedsbeskyttelse, automatisk klasseindlæsning, ejendoms- og metodeoverbelastning, grænseflader, abstrakte klasser og brugen af ​​singleton -mønsteret.
  • Kohana har tilsluttet sig GoPHP5 - initiativet . Alle udgivelser efter 2.2 vil følge disse regler.
  • Gemte CodeIgniter -stilen . Enhver, der har brugt CodeIgniter, vil hurtigt forstå strukturen af ​​Kohana.
  • Drives af samfundet, ikke af virksomheden. Kohana er drevet af samfundsdiskussioner, ideer og kode. Kohana-udviklere er fra hele verden, hver med deres eget talent. Dette giver mulighed for en hurtigere og mere agil udviklingscyklus, hvor det tager timer at reagere på problemer i stedet for dage eller måneder.
  • GET, POST, COOKIE og SESSION-arrays fungerer som forventet. Kohana begrænser ikke adgangen til globale variabler, men giver den samme filtrering og XSS-beskyttelse som CodeIgniter.
  • Cascading ressourcer, moduler og arv. Controllere, modeller, biblioteker, hjælpere og visninger kan indlæses hvor som helst i dit system, din applikation eller dit modul. Konfigurationsmuligheder er nedarvet og kan dynamisk overskrives af hver applikation.
  • Der er ingen navnerumskonflikter. Klassesuffikser som "_Controller" bruges til at forhindre navnerumskonflikter. Dette gør det muligt for brugerdefinerede controllere og modeller at indlæse på samme tid.
  • Autoloading i ægte klasse. Gælder for biblioteker, controllere, modeller og hjælpere. Dette er ikke forudindlæsning, men reel dynamisk indlæsning af klasser under deres initialisering.
  • Hjælpere er statiske klasser, ikke funktioner. For eksempel, i stedet for at bruge "form_open()", kan du bruge "form::open()".
  • Tilslutning af biblioteksdrivere og API'er .
  • Kraftig hændelseshåndtering. I Kohana kan begivenheder tilføjes, erstattes eller endda fjernes dynamisk. Dette gør det muligt at foretage væsentlige ændringer af den måde, Kohana fungerer på, uden at ændre eksisterende systemkode.
Forskellen mellem Kohana 3 og Kohana 2.x

Versioner 2.x og 3 af Kohana-rammen bør betragtes [12] som forskellige rammer. De vigtigste forskelle mellem version 3 og 2.x er:

  • Organiseringen af ​​filsystemet er blevet ændret. Alle klasser er allokeret til klassebiblioteket med model- og controllerundermapper for henholdsvis modeller og controllere. Biblioteker og hjælpere i Kohana 3.x holdes sammen og er stort set de samme nu.
  • Ensartet klassenavnekonvention. Navnet på en hvilken som helst klasse skal svare til den mappe, hvor filen i denne klasse er placeret (for eksempel skal Model_Foo_Bar -klassen være placeret i filklasserne\model\foo\bar.php ).
  • En del af kernefunktionaliteten flyttes til separate moduler (for eksempel Database, ORM), som kan deaktiveres.
  • Mere kontrol over koden, der kører før rammen indlæses. I denne forbindelse blev begivenheder (Begivenheder) og kroge (Hooks) fjernet fra kernen af ​​rammen.
  • Ny routing mekanisme.
  • Væsentlige ændringer i database- og ORM-lagene.
  • Du kan starte en hvilken som helst controller og få dens output ikke kun via HTTP , men også direkte fra koden (ved at angive ruten), uden om HTTP-protokollen. Dette giver dig mulighed for at flytte uafhængige blokke af genereret indhold til separate controllere og forenkler også klient-server-interaktion i AJAX [13] [14] .
Forskelle mellem Kohana 3.1 og Kohana 3.0

I 3.1.x-grenen blev Request - objektet opdelt i separate Request- og Response - klasser . Derudover er validering nu også delt mellem klasserne Validation (styring af valideringsfremskridt) og Valid (et sæt standard statiske regler, der ligner Valid -klassen i Kohana 2.3.4). Du kan læse mere om de vigtigste ændringer i den officielle dokumentation  (eng.) .

Forskelle mellem Kohana 3.2 og Kohana 3.1

Hovedændringen i 3.2.x-grenen var omarbejdningen af ​​mekanismen til at arbejde med konfigurationsfiler. Klasserne Kohana_Config_Reader og Kohana_Config_Writer er dukket op , hvilket giver dig mulighed for at implementere dine egne drivere baseret på dem til at arbejde med forskellige datakilder (filer, DBMS osv.). Derudover er HTTP -caching introduceret i 3.1.x blevet flyttet ud af Request -klassen til en separat HTTP_Cache -klasse i Cache - modulet .

Forskelle mellem Kohana 3.3 og Kohana 3.2

I 3.3.x-grenen blev der besluttet at skifte til PSR-0- standarden  (eng.) . På grund af dette skal alle mappe- og klassefilnavne begynde med et stort bogstav. Derudover er der foretaget en række ændringer for at øge isoleringen af ​​HMVC- anmodninger, håndteringsfejl i forespørgselsudførelsen osv. Der er tilføjet et nyt Minion- modul til udførelse af Cron- opgaver.

Versionshistorik

Farve Beskrivelse
Rød Gammel version; ikke understøttet
Gul Gammel version; stadig understøttet
Grøn Nuværende version
Blå Planlagt version
Navn Version kodenavn Subversion Udgivelses dato Væsentlige ændringer
blåflamme 1.0 1.0 31-05-2007 [15]
Kohana 2.0 Superlime 2.0 2007-11-08 [16]
  • Koden er fuldstændig omskrevet, ingen gammel gammel kode [7] [16]
  • Stoppet kompatibilitet med PHP4, målrettet mod PHP5 [7]
  • Fuldt objektorienteret softwareramme [7]
  • Levering inkluderer moduler [7]
  • Konceptet med cascading ressourcer [7]
2.1 Schneefeier 2.1.0 2008-02-05 [16]
  • Nye biblioteker: Cache , Billede , ORM , Betaling
  • Nye hjælpere: num , expires , email , html::link() , html::breadcrumb() , arr::binary_search() , valid::standard_text() , text::widont() ;
  • Nye moduler: Auth & Forge ; PostgreSQL- og MySQLi- drivere
  • gzip-outputkomprimering, fejlrettelser og API -ændringer [17]
2.1.1 2008-02-06 [16]
  • Hjælperudvidelsesfejl rettet
  • Tilføjet engelsk (UK), tysk og makedonsk sprog [18]
2.1.2 2008-06-10
  • Tilføjet konstant KOHANA_IS_WIN , som signalerer at arbejde på Windows-platformen
  • Talrige fejlrettelser [19]
2.2 Ephimera 2.2.0 2008-08-08
  • Nye biblioteker ( Captcha )
  • Nye hjælpere ( upload , formater osv.)
  • Nye konfigurationsattributter,
  • Nye drivere (MSSQL, PayPal Pro)
  • Kodeoprydning, optimering og fejlrettelser [20]
2.3 Kernachtig 2.3.0 2008-12-20
  • Ny router
  • Nyt databasebibliotek (object_db)
2.3.1 2009
2.3.2 2009
Aegolius 2.3.3 31-05-2009
Buteo Regalis 2.3.4 2009-06-05
2.4 - 2.4-RC1 2009-11-19 [21]

Det var planlagt som en logisk fortsættelse af 2.3-grenen, men på grund af udgivelsen af ​​version 3.0 blev den ikke bragt til en stabil udgivelse.

3.0 Renæssance 3.0.0 2009-09-17 [22]
  • Koden er blevet fuldstændig omskrevet. Ingen kompatibilitet med applikationer skrevet til 2.x
  • Arkitektur følger HMVC -designmønsteret
  • Tilføjet ny kernefunktionalitet
  • Alle hjælpere og biblioteker er klasser i klassemappen (ingen hjælpere/biblioteker mapper)
3.0.1 2009-10-16 [23]
3.0.2 2009-11-21 [24]
3.0.3 2009-11-23 [25]
wyau cwningen 3.0.4 2010-04-04 [26]
3.0.5 2010-05-25 [27]
sumar hiti 3.0.6 2010-06-07 [28]
hat trick 3.0.7 2010-07-11 [29]
großen jäger 3.0.8 2010-09-22 [30]
nye aret 3.0.9 30-12-2010 [31]
Hierofalco 3.0.10 2011-03-13 [32]
vespertinus 3.0.11 2011-05-02 [33]
cuvierii 3.0.12 24-07-2011 [34]
3.1 merle 3.1.0 2011-02-07 [35]
  • Forbedret anmodning / svar
  • Kontekster føjet til validering
  • Fjernet sideinddelingsmodul
esalon 3.1.1 2011-02-16
Hirondelle 3.1.2 2011-04-14 [32]
araea 3.1.3 2011-05-02 [33]
fasciinucha 3.1.4 24-07-2011 [34]
biarmicus 3.1.5 31-08-2012 [36]
3.2 Kolibri 3.2.0 24-07-2011 [34]
  • Yderligere forfining af Request / Response- mekanismen
  • Princippet for at arbejde med konfigurationsfiler er blevet ændret (drivere baseret på klasserne Kohana_Config_Reader og Kohana_Config_Writer )
Milvago 3.2.1 2012-08-27 [36]
hypoleukos 3.2.2 31-08-2012 [37]
3.3 badius 3.3.0 23-10-2012 [38]
  • Overgang til PSR-0 standarden
  • Forøgelse af isolationen af ​​HMVC- anmodninger ( Request )
  • Mere bekvemt undtagelseshåndteringssystem
  • Tilføjet Minion -modul og phpunit- modul

Noter

  1. Hvem laver Kohana? Arkiveret fra originalen den 23. september 2010.  (Engelsk)
  2. Kohana downloadside Arkiveret 10. februar 2016 på Wayback Machine 
  3. oversigt [Kohana Brugervejledning] Arkiveret 2. oktober 2008.
  4. Moderne PHP-rammer - komplet leaderboard . Hentet 11. maj 2022. Arkiveret fra originalen 25. februar 2022.
  5. Kohana-gaffel fra CodeIgniter  (engelsk)  (downlink) . PHP devReview() (19. juni 2007). Arkiveret fra originalen den 12. marts 2012.
  6. CodeIgniter Forum Arkiveret 25. marts 2010. juni 2007
  7. 1 2 3 4 5 6 Kohana Brugervejledning Arkiveret 21. november 2009.  (downlink siden 16-03-2016 [2422 dage])
  8. Endelige udgivelser af Kohana / Beginning of Ohanzee (link ikke tilgængeligt) . Hentet 11. september 2014. Arkiveret fra originalen 11. september 2014. 
  9. Projektlager på Github . Hentet 13. august 2015. Arkiveret fra originalen 24. februar 2015.
  10. koseven: Koseven en Kohana-gaffel, der er kompatibel med PHP7 . — 2017-11-28. Arkiveret fra originalen den 9. juni 2019.
  11. 12 kohana /kohana . GitHub. Hentet 16. august 2016. Arkiveret fra originalen 4. oktober 2016.
  12. Kohana 3.x vs 2.x Arkiveret fra originalen den 1. februar 2012.
  13. KO3: HMVC og routing . Hentet 30. september 2016. Arkiveret fra originalen 7. august 2016.
  14. Lav en simpel HMVC-widget i Kohana3 . Hentet 2. februar 2010. Arkiveret fra originalen 5. december 2010.
  15. 1 2 BlueFlame 1.0 udgivet! | CodeIgniter-fora arkiveret 23. marts 2009.
  16. 1 2 3 4 changelog [Kohana brugervejledning] Arkiveret 9. november 2009.
  17. changelog:2.1 [Kohana brugervejledning] Arkiveret 2. juli 2009.
  18. changelog:2.1.1 [Kohana brugervejledning] Arkiveret 2. juli 2009.
  19. changelog:2.1.2 [Kohana Brugervejledning] Arkiveret 31. maj 2009.
  20. changelog:2.2 [Kohana Brugervejledning] Arkiveret 20. juni 2009.
  21. [https://web.archive.org/web/20130328112449/http://forum.kohanaframework.org/discussion/4014/2-4-release-candidate-1-released Arkiveret 28. marts 2013 på Wayback Machine 2.4 Frigivelseskandidat 1 frigivet [Kohana-fora]]
  22. [https://web.archive.org/web/20130328161906/http://forum.kohanaframework.org/discussion/3479/kohana-v3-0-released Arkiveret 28. marts 2013 på Wayback Machine Kohana v3.0 Udgivet! [Kohana-fora]]
  23. [https://web.archive.org/web/20130328143112/http://forum.kohanaframework.org/discussion/3787/kohana-v3-0-1-released Arkiveret 28. marts 2013 på Wayback Machine Kohana v3 .0.1 Udgivet! [Kohana-fora]]
  24. [https://web.archive.org/web/20130328035101/http://forum.kohanaframework.org/discussion/4119/kohana-v3-0-2-released Arkiveret 28. marts 2013 på Wayback Machine Kohana v3 .0.2 Udgivet! [Kohana-fora]]
  25. [https://web.archive.org/web/20130328132052/http://forum.kohanaframework.org/discussion/4144/kohana-v3-0-3-released Arkiveret 28. marts 2013 på Wayback Machine Kohana v3 .0.3 Udgivet! [Kohana-fora]]
  26. [https://web.archive.org/web/20130328032053/http://forum.kohanaframework.org/discussion/5299/kohana-v3-0-4-released Arkiveret 28. marts 2013 på Wayback Machine Kohana v3 .0.4 Udgivet! [Kohana-fora]]
  27. [https://web.archive.org/web/20130328024956/http://forum.kohanaframework.org/discussion/5821/kohana-v3-0-5-released Arkiveret 28. marts 2013 på Wayback Machine Kohana v3 .0.5 Udgivet! [Kohana-fora]]
  28. [https://web.archive.org/web/20130328153354/http://forum.kohanaframework.org/discussion/5937/kohana-v3-0-6-released Arkiveret 28. marts 2013 på Wayback Machine Kohana v3 .0.6 Udgivet! [Kohana-fora]]
  29. [https://web.archive.org/web/20130328163300/http://forum.kohanaframework.org/discussion/6209/kohana-v3-0-7-released Arkiveret 28. marts 2013 på Wayback Machine Kohana v3 .0.7 Udgivet! [Kohana-fora]]
  30. [https://web.archive.org/web/20130328142923/http://forum.kohanaframework.org/discussion/6867/kohana-v3-0-8-released Arkiveret 28. marts 2013 på Wayback Machine Kohana v3 .0.8 Udgivet! [Kohana-fora]]
  31. [https://web.archive.org/web/20130328115434/http://forum.kohanaframework.org/discussion/7699/kohana-v3-0-9-released Arkiveret 28. marts 2013 på Wayback Machine Kohana v3 .0.9 Udgivet! [Kohana-fora]]
  32. 1 2 [https://web.archive.org/web/20130328120526/http://forum.kohanaframework.org/discussion/8418/kohana-3-1-2-kohana-3-0-10-released Arkiveret kopi dateret 28. marts 2013 på Wayback Machine Kohana 3.1.2 & Kohana 3.0.10 udgivet! [Kohana-fora]]
  33. 1 2 [https://web.archive.org/web/20121127172241/http://forum.kohanaframework.org/discussion/8886/kohana-3-1-3-kohana-3-0-11-released Arkiveret kopi dateret 27. november 2012 på Wayback Machine Kohana 3.1.3 & Kohana 3.0.11 udgivet! [Kohana-fora]]
  34. ^ 1 2 3 [https://web.archive.org/web/20121127172115/http://forum.kohanaframework.org/discussion/9380/kohana-3-2-0-3-1-4-3-0 -12-udgivet Arkiveret 27. november 2012 på Wayback Machine Kohana 3.2.0, 3.1.4, 3.0.12 Udgivet! [Kohana-fora]]
  35. [https://web.archive.org/web/20130328024431/http://forum.kohanaframework.org/discussion/8024/kohana-v3-1-0-released Arkiveret 28. marts 2013 på Wayback Machine Kohana v3 .1.0 Udgivet! [Kohana-fora]]
  36. 1 2 [https://web.archive.org/web/20120830041617/http://forum.kohanaframework.org/discussion/11041/kohana-v3-2-1-and-3-1-5-released Archived kopi dateret 30. august 2012 på Wayback Machine Kohana v3.2.1 (og 3.1.5) udgivet! [Kohana-fora]]
  37. [https://web.archive.org/web/20120923153856/http://forum.kohanaframework.org/discussion/11050/kohana-v3-2-2-released Arkiveret 23. september 2012 på Wayback Machine Kohana v3 .2.2 Udgivet! [Kohana-fora]]
  38. [https://web.archive.org/web/20121026010735/http://forum.kohanaframework.org/discussion/11191/kohana-3-3-0-released Arkiveret 26. oktober 2012 på Wayback Machine Kohana 3.3 .0 Udgivet! [Kohana-fora]]

Links