Nette Framework

Nette Framework
Logo
VývojářDavid Grudl, dobrovolní přispěvatelé
Aktuální verze3.2.1 (11. března 2024)
Připravovaná verze4.0.0 (11. března 2024)
Operační systémMultiplatformní
Vyvíjeno vPHP
Typ softwaruWebový aplikační framework
LicenceNew BSD, GNU GPL
Webnette.org
Některá data mohou pocházet z datové položky.

Nette Framework je open source framework pro tvorbu webových aplikací v PHP. Zaměřuje se na eliminaci bezpečnostních rizik, podporuje AJAX, DRY, KISS, MVC a znovupoužitelnost kódu. Využívá událostmi řízené programování a z velké části je založen na použití komponent. Autorem Nette Frameworku je David Grudl, který se stará o jeho další rozvoj spolu s dalšími přispěvateli.[1] Nette Framework je svobodný software, nabízený pod licencemi GNU GPL a licencí New BSD[2].

Během vývoje se do frameworku přidávaly další užitečné (ale ne nepostradatelné) nástroje, doplňky, komponenty apod. A tím zdrojový kód stále rostl. Navíc když chtěl vývojář použít např. jen formuláře, musel si stáhnout celý framework. Proto se framework ve verzi 2.2 rozdělil do mnoha samostatných repozitářů.

Požadavky

Nette Framework 3.0 vyžaduje PHP ve verzi 7.1 a vyšší, Nette 3.1 PHP ve verzi 7.2 a vyšší, nejnovější verze Nette 4.0 pak PHP 8.0 a vyšší. Další požadavky je možné otestovat na serveru pomocí oficiálního nástroje Requirements Checker.[3]

Vlastnosti Nette Framework

Autoloading

NetteLoader

V produkčním prostředí stačí načíst jediný soubor.

<?php
require_once 'Nette/loader.php';

RobotLoader

  • Využívá cache, je třeba nastavit její cestu
  • Inteligentní zneplatnění cache
  • V souboru netterobots.txt lze nastavit ignorované adresáře
$loader = new RobotLoader();
$loader->addDirectory('libs');
$loader->register();

Eliminace a ladění chyb

Nette Framework poskytuje několik velmi silných nástrojů pro odhalování a ošetřování případných chyb.

Laděnka

Ladící nástroj na odchytávání chyb vzniklých během kompilace programu. Zpřehledňuje klasické chybové hlášky. Umožňuje tak efektivní ladění aplikace. Stačí využít NetteLoader a zapnout debug mód.

<?php
require 'libs/Nette/loader.php';
Debug::enable();

Připojení na FireBug

Komunikací FireBug a Nette\Debug umožňuje zasílat zprávy samostatným kanálem, mimo okno samotného prohlížeče. Informace se tedy neztratí v případné záplavě textů na stránce, ale zobrazí se přehledně v jiném okně. Chyby úrovně E_NOTICE a E_WARNING jsou do FireBug zasílány automaticky. Je nutné mít nainstalovaný FireFox alespoň verze 2. Stáhnout si rozšíření Firebug a FirePHP minimálně verzi 0.2. Nette\Debug komunikuje s FireBug přes hlavičky HTTP. Je tedy nutné volat logovací funkci před tím než začne PHP skript cokoliv vypisovat. Samozřejmě je možné zapnout output buffering a tím výstup oddálit.

Konzole

Nette Debug console je vyskakovací okénko, do kterého je možné vypisovat proměnné.

<?php
$pole = array(1,2,3,5);
Debug::consoleDump($pole);

Logování chyb

V případě produkčního režimu, kdy není vhodné ani žádoucí využívat některou z předchozích metod výpisu chyb nám dává Nette Framework nástroj k zachycení vzniklých chyb do logu. Textového souboru, kde se můžeme přesně dozvědět co se v aplikaci stalo a případné chyby opravit. Logování chyb je třeba zapnout a nastavit cestu k adresáři, do kterého je možné zapisovat.

Debug::enable(Debug::DETECT, '%logDir%/php_error.log', 'admin@example.com');

Parametr Debug::DETECT říká, že má Nette samo zjistit zda se server nachází v produkčním nebo vývojovém režimu. Další parametr je cesta k logovacím souborům a poslední je e-mailová adresa, kam se bude zasílat upozornění o vzniku chyby.

Vývojový nebo produkční režim

Nette rozlišuje 2 režimy, pod kterými běží server. Vývojový režim se snaží nabídnout veškeré informace pro programátora o rychlosti běhu aplikace, o routování a pohodlný výpis vzniklých chyb. Naproti tomu v produkčním režimu Nette veškeré informace skryje a umožňuje logování chyb do souboru mimo oči běžného uživatele.

Framework dokáže sám zjistit v jakém režimu se server nachází. Rozhoduje se na základě IP adresy přidělené serveru. Chybu může způsobit server běžící za proxy serverem, nebo server určený pro lokální potřeby organizace. V tomto případě je nutné nastavit aktuální režim ručně.

Debug::enable(Debug::DEVELOPMENT);
Debug::enable(Debug::PRODUCTION);

Webové formuláře

Nette dává programátorovi velmi silný nástroj pro tvorbu formulářů. Samotný framework zařídí veškeré ohlídání prvků formuláře. Ohlídá vstupy proti možným útokům.

Přednosti Nette Framework

  • Obsahuje velmi silný validační jazyk
  • Automaticky generuje validační JavaScript
  • Plná moc nad vzhledem formulářů
  • Podpora automatického překladu
  • Ošetření proti útokům: XSS, Cross-Site Request Forgery, UTF-8 attack
  • Silná ochrana proti SQL injection, v případě používání notORM (Nette database)
$form = new Form();
$form->addText('jmeno','Zadejte jméno')
 ->addRule(Form::FILLED,'Zadejte své jméno');
$form->addPassword('heslo','Zadejte své heslo')
 ->addRule(Form::FILLED,'Zadejte heslo');
$form->addSubmit('prihlasit','Přihlásit');
echo $form;

Nevýhody Nette Framework

Routování, Cool URL

Na rozdíl od většiny jiných frameworků je možné nastavit tvar URL jako poslední věc v celé aplikaci. Umožňuje to obousměrné zpracování routů, které slouží jak k parsování tak generování cest. Pěkné URL (Cool URL) je důležité také pro SEO, vyhledávače adresy vyhodnocují a stává se součástí bodování důležitostí webu a ovlivňuje tak pozici ve vyhledávači. Zároveň jsou adresy čitelnější a zapamatovatelnější pro uživatele stránek. Nette odstiňuje použití direktiv mod_rewrite a tak není nutné definovat tvar rout na více místech. Tím se předchází vzniku chyb.

Podpora

K Nette Frameworku pořádá autor školení, která částečně mohou nahradit chybějící kusy dokumentace.[4] Každý měsíc se také koná neformální setkání příznivců Nette Frameworku, nazývané Poslední sobota pořádané v Praze, Brně i na jiných místech.[5]

Reference

  1. Tým a přispěvatelé. nette.org [online]. [cit. 2024-03-22]. Dostupné online. 
  2. Licenční politika na oficiálních stránkách Nette
  3. Nástroj Requirements Checker
  4. Jakub Vrána: Ohlas na školení Nette, blog PHP triky
  5. Poslední sobota v měsíci pro příznivce Nette Frameworku, zprávička na zdrojak.root.cz, 26. 2. 2009

Externí odkazy

Oficiální stránky frameworku

Články o frameworku

Read other articles:

Crazy in LoveSingle by Kim Carnesfrom the album View from the House B-sideBlood from the BanditReleased1988Recorded1988Sound Stage Studios(Nashville, Tennessee)Length3:52LabelMCASongwriter(s)Randy McCormickEven StevensProducer(s)Jimmy BowenKim CarnesKim Carnes singles chronology Speed of the Sound of Loneliness (1988) Crazy in Love (1988) Just to Spend Tonight with You (1988) Crazy in LoveSingle by Conway Twittyfrom the album Crazy in Love B-sideHeart's Breakin' All Over TownReleasedAugust 19...

 

Aditya DharAditya di Festival Film Internasional India ke-50 pada tahun 2019LahirTanggal tidak terbaca. Angka tahun harus memiliki 4 digit (gunakan awalan nol untuk tahun < 1000). (usia Kesalahan ekspresi: Operator < tak terduga)[1]New Delhi, IndiaPekerjaanSutradarapenulis naskahDikenal atasUri: The Surgical StrikeSuami/istriYami Gautam ​(m. 2024)​ Aditya Dhar (lahir 12 Maret 1983) adalah seorang penulis, sutradara dan pembuat lirik asal India. Ia m...

 

Acorales Acorales Acorus calamusTaksonomiKerajaanPlantaeSubkerajaanViridiplantaeInfrakerajaanStreptophytaSuperdivisiEmbryophytaDivisiTracheophytaSubdivisiSpermatophytesKladAngiospermaeKladmonocotsOrdoAcorales Mart., 1835 Famililihat teks.lbs Acorales adalah salah satu ordo tumbuhan berbunga yang termasuk dalam klad Monokotil menurut Sistem klasifikasi APG II). Bangsa ini hanya memiliki satu suku (Acoraceae) dan satu marga, Acorus. Jeringau atau dlingo (Acorus calamus), adalah anggota yang pal...

Educational Launch of Nanosatellites (ELaNa) is an initiative created by NASA to attract and retain students in the science, technology, engineering and mathematics disciplines.[1] The program is managed by the Launch Services Program (LSP) at NASA's Kennedy Space Center in Florida. Overview Engineers processing a CubeSat at a facility of Rocket Lab. The ELaNa initiative has made partnerships with universities in the US to design and launch small research satellites called CubeSats (...

 

Daftar keuskupan di Swiss adalah sebuah daftar yang memuat dan menjabarkan pembagian terhadap wilayah administratif Gereja Katolik Roma yang dipimpin oleh seorang uskup ataupun ordinaris di Swiss. Para uskup di wilayah Swiss bergabung dalam Konferensi Waligereja Swiss. Saat ini terdapat 10 buah yurisdiksi, di mana 8 merupakan keuskupan sufragan dan 2 merupakan keabasan teritorial. Daftar keuskupan Yurisdiksi Tahta Suci Keuskupan Basel: Felix Gmür Uskup Auksilier, Denis Theurillat Keuskupan C...

 

イスラームにおける結婚(イスラームにおけるけっこん)とは、二者の間で行われる法的な契約である。新郎新婦は自身の自由な意思で結婚に同意する。口頭または紙面での規則に従った拘束的な契約は、イスラームの結婚で不可欠だと考えられており、新郎と新婦の権利と責任の概要を示している[1]。イスラームにおける離婚は様々な形をとることができ、個...

Gearing-class destroyer For other ships with the same name, see USS Rowan. USS Rowan underway in 1965 History United States NameRowan NamesakeStephen C. Rowan BuilderTodd Pacific Shipyards Laid down25 March 1944 Launched29 December 1944 Sponsored byMrs. David S. Folsom Commissioned31 March 1945 Decommissioned18 December 1975 Stricken30 January 1976 Identification Callsign: NTFJ Hull number: DD-782 MottoIf It's There, We'll Be There Nickname(s)Black Bird Honors andawardsSee Awards FateTransfer...

 

PetatalDesaNegara IndonesiaProvinsiSumatera UtaraKabupatenBatu BaraKecamatanDatuk Tanah DatarKode pos21254Kode Kemendagri12.19.11.2009 Luas... km²Jumlah penduduk... jiwaKepadatan... jiwa/km² Gapura selamat datang di Desa Petatal Petatal merupakan salah satu desa yang ada di kecamatan Datuk Tanah Datar, Kabupaten Batu Bara, provinsi Sumatera Utara, Indonesia. Pranala luar (Indonesia) Keputusan Menteri Dalam Negeri Nomor 050-145 Tahun 2022 tentang Pemberian dan Pemutakhiran Kode, Data Wi...

 

Most prominent locations of the continent's physical boundaries North America This is a list of the extreme points of North America: the points that are highest and lowest, and farther north, south, east or west than any other location on the continent. Some of these points are debatable, given the varying definitions of North America. North America and surrounding islands Northernmost point — Kaffeklubben Island, Greenland 83°40′N 29°50′W / 83.667°N 29.833°W...

Mikoyan-Gurevich MiG-8 Utka ((Rusia: Микоян и Гуревич МиГ-8 «Утка»), duck) adalah pesawat eksperimental sayap tinggi (high wing) Soviet. Dibangun dari kayu, pesawat itu dirancang dan dibangun pada tahun 1945 untuk menguji konfigurasi canard baru. Ini juga menggunakan sepeda roda tiga undercarriage, yang pertama kali digunakan oleh biro desain (OKB). Itu dimodifikasi untuk menguji berbagai stabilizer vertikal dan konfigurasi ujung sayap dan kemudian digunakan sebagai pes...

 

† Стеллерова корова Муляж стеллеровой коровы в Лондонском музее естествознания Научная классификация Домен:ЭукариотыЦарство:ЖивотныеПодцарство:ЭуметазоиБез ранга:Двусторонне-симметричныеБез ранга:ВторичноротыеТип:ХордовыеПодтип:ПозвоночныеИнфратип:Челюстно...

 

Species of beetle Small hive beetle Scientific classification Domain: Eukaryota Kingdom: Animalia Phylum: Arthropoda Class: Insecta Order: Coleoptera Infraorder: Cucujiformia Family: Nitidulidae Genus: Aethina Species: A. tumida Binomial name Aethina tumidaMurray, 1867 Aethina tumida, commonly known as small hive beetle (SHB), is a beekeeping pest.[1] It is native to sub-Saharan Africa, but has spread to many other regions, including North America, Australia, and the Philippines....

1894 novel by John Jacob Astor IV A Journey in Other Worlds AuthorJohn Jacob Astor IVIllustratorDan BeardCountryUnited StatesLanguageEnglishGenreScience fiction Speculative fiction Utopian fictionPublisherD. Appleton & Co.Publication date1894Media typePrint (hardcover)Pages476 pp. A Journey in Other Worlds: A Romance of the Future is a science fiction novel by John Jacob Astor IV, published in 1894.[1] Overview The Callisto was going straight up. The book offers a fictional a...

 

منتخب جبل طارق للكريكت تعديل مصدري - تعديل   منتخب جبل طارق للكريكت هو ممثل جبل طارق الرسمي في المنافسات الدولية في الكريكت .[1][2][3] تشكيلة المنتخب قائمة اللاعبين مراجع ^ History of the Gibraltar Cricket Association. Gibraltar Cricket Association. مؤرشف من الأصل في 17 October 2007. اطلع عليه بتاريخ 20 Octo...

 

Species of eucalyptus Mottlecah Eucalyptus macrocarpa between Brookton and Corrigin Scientific classification Kingdom: Plantae Clade: Tracheophytes Clade: Angiosperms Clade: Eudicots Clade: Rosids Order: Myrtales Family: Myrtaceae Genus: Eucalyptus Species: E. macrocarpa Binomial name Eucalyptus macrocarpaHook.[1] E. macrocarpa, field distribution Eucalyptus macrocarpa, commonly known as mottlecah,[2] is a species of mallee that is endemic to the south-west of Western Aus...

IEEE standard for low-rate wireless personal area networks This article has multiple issues. Please help improve it or discuss these issues on the talk page. (Learn how and when to remove these template messages) This article relies excessively on references to primary sources. Please improve this article by adding secondary or tertiary sources. Find sources: IEEE 802.15.4 – news · newspapers · books · scholar · JSTOR (November 2018) (Learn how and whe...

 

Artikel ini sebatang kara, artinya tidak ada artikel lain yang memiliki pranala balik ke halaman ini.Bantulah menambah pranala ke artikel ini dari artikel yang berhubungan atau coba peralatan pencari pranala.Tag ini diberikan pada Januari 2023. Akiyama adalah nama Jepang. Tokoh-tokoh dengan nama Jepang ini antara lain: Pemain sepak bola Jepang Daichi Akiyama Hiroki Akiyama Takashi Akiyama Takayuki Akiyama Takuya Akiyama Yosuke Akiyama Halaman-halaman lainnya Semua halaman dengan Akiyama Semua...

 

Island in the country of Japan YagishiriNative name: 焼尻島, Yagishiri-tōYagishiri Island, Haboro, Hokkaido, JapanGeographyLocationEast AsiaCoordinates44°26′N 141°24′E / 44.433°N 141.400°E / 44.433; 141.400ArchipelagoJapanese archipelagoArea5.34 km2 (2.06 sq mi)Length4 km (2.5 mi)Width2 km (1.2 mi)Highest elevation97 m (318 ft)Highest pointCentral Yagishiri IslandAdministrationJapanPrefectureHokkaidoSub...

Artikel ini membutuhkan rujukan tambahan agar kualitasnya dapat dipastikan. Mohon bantu kami mengembangkan artikel ini dengan cara menambahkan rujukan ke sumber tepercaya. Pernyataan tak bersumber bisa saja dipertentangkan dan dihapus.Cari sumber: Daftar bangunan tertinggi di Indonesia – berita · surat kabar · buku · cendekiawan · JSTOR Jakarta, tempat sebagian besar pencakar langit di Indonesia Pemandangan Surabaya, kota terbesar kedua di Indonesia Be...

 

حرب 1948 جزء من الصراع العربي الإسرائيلي محاور التقدم للقوات العربية خلال حرب 1948 معلومات عامة التاريخ 15 مايو 1948 – 10 مارس 1949(9 أشهر و3 أسابيع ويومين) البلد فلسطين  تسببت في تهجير الفلسطينيين 1948،  وهجرة اليهود من الدول العربية والإسلامية  الموقع فلسطين الانتدابية الساب...