Ramkalarsiz zamonaviy PHP. O'rganish uchun qaysi PHP ramkasini tanlash kerak? PHP ramkasini tanlash


Men o'z fikrlarimni baham ko'raman va ikki sentimni qo'shaman. Maqolada juda ko'p raqamlar yoki grafiklar bo'lmaydi (barcha turdagi Google Trends), faqat shaxsiy kuzatishlar.

Xullas, PHP ning so‘nggi versiyalari chiqarilishi va mashhur PHP ramkalarining yangi versiyalari (Zend Framework 2, Yii2 (alpha) va boshqalar) paydo bo‘lishi bilan PHP tiliga qiziqish kuchaymoqda. Aytgancha, bu til hozirda juda mashhur. Asosan yangi veb-ishlab chiquvchilar orasida (hozirda u barcha veb-saytlarning 80% dan ko'prog'ida qo'llaniladi) va o'rtacha trafikli resurslar orasida.

Albatta, PHP dan foydalanadigan global veb-saytlarga misollar mavjud:

Keling, PHP ramkalari haqidagi savolga qaytaylik va qaysi biri hozir mashhur, talabga ega va qaysi birini o'rganish kerak. Agar G'arb bozori haqida gapiradigan bo'lsak, unda talab va zikr qilish chastotasi bo'yicha shubhasiz etakchilar: Zend Framework, CodeIgniter va Yii-ning tez o'sib borayotgan mashhurligi. Dunyoning eng yirik frilanser birjalarida oDesk va Elance, bu uchtadan tashqari, CakePHP va Symfony tez-tez tilga olinadi.

Postsovet hududidagi kenglikda ular kamayish tartibida mashhur:

  • Zend Framework
  • CodeInginter
  • Simfoniya
  • Kohana
  • CakePHP

Xulosa qilib aytadigan bo'lsak, dasturchilarning afzalliklari va ish beruvchilarning so'rovlariga ko'ra dunyodagi eng mashhur PHP ramkalari. Zend Framework, CodeIgniter Va Yii. Ikkinchisi tezda mashhurlikka erishmoqda. Symfony va CakePHP ham frilanser ishlab chiquvchilar orasida keng tarqalgan.

Boshqa skript tillarining (masalan, Python va Ruby) mashhurligi oshib borayotganiga qaramay, yirik korporatsiyalar hali ham PHP-ni tanlaydilar. Va platformani tanlashda ular kengayishi, ramkaning mashhurligi va ushbu platforma uchun bozorda mutaxassislarning mavjudligi kabi mezonlarga asoslanadi. HiLoad sohasida PHP biroz pastroq va aftidan o'z chegarasiga yetgan. Ammo unga asoslangan kompilyatsiya qilingan echimlar paydo bo'ladi, masalan, kPHP, HipHop va boshqalar.

Nimani o'rganish va nimaga e'tibor qaratish kerak?

Agar sizda PHP bo'yicha boshlang'ich bilimingiz bo'lsa, siz ushbu yo'nalishda rivojlanishni xohlaysiz va o'z ko'nikmalaringiz ish beruvchiga foydali bo'lishini xohlaysiz - birinchi navbatda dastlabki uchta ramkani diqqat bilan ko'rib chiqishingiz kerak: Zend, CodeIgniter, Yii. Keyinchalik, qaysi biri siz uchun ko'proq "yoqimli" va o'rganish osonroq bo'lishini hal qilishingiz kerak. Va nihoyat, ularni sinab ko'ring.

Mening otashinlarga shaxsiy munosabatim quyidagicha:

— Zend Framework mashhur, ammo dahshatli, ishlashda muammolar mavjud. Ushbu asosni bilish bilan siz qiyinchiliksiz ish topishingiz mumkin, yana bir savol, siz unga osonlik bilan "kirishingiz" mumkinmi; Menga kelsak, o'qish qiyin va u bilan boshlashga arzimaydi, IMHO.

— CodeIgniter oddiy va tez. Ammo funksionallik jihatidan raqobatchilardan ancha orqada. Bu MVC va boshqa nozikliklarni tushunishni boshlash uchun yaxshi joy. Ammo vaqt o'tishi bilan siz qutidagi funksionallikni sog'inasiz.

— Yii o‘rtadagi narsa. CodeIgniter-ga qaraganda unumdorligi biroz pastroq, lekin ko'proq funksionallikni o'z ichiga oladi. Yaxshi hujjatlar mavjud va umuman olganda, u Zendga qaraganda ancha qulayroq.

— Yuqorida sanab o'tilgan qolgan ramkalar ham e'tiborga loyiqdir, lekin men ular bilan shaxsiy aloqada bo'lmaganman, shuning uchun men suvni loy qilmayman.

Men CodeIgniter-ni o'rganishdan boshladim va uni sevib qoldim. Keyin menda funksionallik etishmayapti va muqobil qidira boshladim. Men hozirda Yii-ni o'rganyapman va ishimda foydalanmoqdaman. Savol bo'lsa o'rganish uchun qaysi PHP ramkasini tanlash kerak ochiqchasiga ayting - shunda men hali ham Yii 1.1 ni o'rganishga moyil bo'lardim. Va orqaga mos kelmaydigan Yii2 ustidagi faol ish bilan chalkashib ketmang, bu uning ishlab chiqarishga chiqarilishidan ancha uzoqdir.

Umid qilamanki, men sizga foydali bo'ldim.

  • Tarjima
  • Oʻquv qoʻllanma

Sizga qiyin vazifam bor. Keyingi safar yangi loyihani boshlaganingizda, PHP ramkasisiz bajarishga harakat qiling. Men ramkalarning kamchiliklarini sanab o'tmoqchi emasman va bu boshqa odamlarning rivojlanishidan nafratlanish sindromining ko'rinishi emas: ushbu qo'llanmada biz bir nechta ramkalarni ishlab chiquvchilar tomonidan yozilgan paketlardan foydalanamiz. Men bu sohadagi innovatsiyalarni hurmat qilaman.


Ammo bu maqola ular haqida emas. Bu siz haqingizda. Yaxshiroq dasturchi bo'lish imkoniyati haqida.


Ehtimol, ramkadan voz kechishning asosiy afzalligi hamma narsa kaput ostida qanday ishlashini bilishdir. Sizga shunchalik g'amxo'rlik qiladigan va biror narsani tuzatib yoki to'liq tushuna olmaydigan ramkaga tayanmasdan nima sodir bo'layotganini ko'rasiz.


Sizning keyingi ishingiz sizga ramkasiz yangi loyihani boshlashdan zavqlanishingizga imkon bermasligi mumkin. Ko'pgina muhim, biznes uchun muhim PHP vazifalari mavjud ilovalardan foydalanishni o'z ichiga oladi. Va bu ilova Laravel yoki Symfony kabi zamonaviy tizimda, CodeIgniter yoki FuelPHP kabi eski platformalardan birida qurilganmi yoki bu “oʻz ichiga olgan arxitektura”ga ega boʻlgan juda keng tarqalgan eski PHP ilovasi boʻladimi, muhim emas: agar Siz hozir rivojlanasiz holda ramka, siz yaxshiroq tayyorlanasiz har qanday kelajakdagi PHP loyihasi uchun.


Ilgari ular ramkalarsiz yaratishga harakat qilishgan, chunki ba'zi tizimlar HTTP so'rovlarini sharhlash va yo'naltirishga, HTTP javoblarini yuborishga va bog'liqliklarni boshqarishga majbur. Standartlarning yo'qligi muqarrar ravishda hech bo'lmaganda bunga olib keldi bular Ramkalarning tarkibiy qismlari bir-biri bilan chambarchas bog'liq edi. Shunday qilib, agar siz loyihani ramkasiz ishlab chiqishni boshlasangiz, oxir-oqibat o'zingizning ramkangizni yaratasiz.


Ammo bugungi kunda, PHP-FIG-ning avtomatik yuklash va o'zaro muvofiqlikdagi sa'y-harakatlari tufayli siz ramkalarsiz, yo'lda uni yaratmasdan rivojlana olasiz. Ko'plab ishlab chiquvchilar tomonidan yozilgan ko'plab mukammal, o'zaro mos paketlar mavjud. Va ularni yagona tizimga to'plash siz o'ylagandan ko'ra osonroqdir!

PHP qanday ishlaydi?

Avvalo, PHP ilovalari tashqi dunyo bilan qanday munosabatda bo'lishini tushunish muhimdir.


PHP server ilovalarini so'rov/javob siklida bajaradi. Ilova bilan barcha o'zaro aloqalar - brauzerdan, buyruq qatoridan yoki REST API - unga so'rovlar sifatida keladi. So'rov qabul qilinganda, dastur yuklanadi, so'rovni qayta ishlaydi va mijozga qaytariladigan javobni ishlab chiqaradi va dastur yopiladi. Va bu qachon sodir bo'ladi hamma ishlov berish.

So'rov nazoratchisi

Ushbu bilim bilan qurollangan holda, keling, oldingi boshqaruvchidan boshlaylik. Bu sizning ilovangizga bo'lgan barcha so'rovlarni bajaradigan PHP faylidir. Ya'ni, bu so'rov yuboriladigan birinchi PHP fayli va (aslida) ilova javobi orqali o'tadigan oxirgi PHP fayli.


Keling, klassik misoldan foydalanamiz Salom Dunyo!, har bir narsa to'g'ri sozlanganligini tekshirish uchun PHP o'rnatilgan veb-server tomonidan xizmat qiladi. Agar buni hali qilmagan bo'lsangiz, muhitingizda PHP 7.1 yoki undan yuqori versiyalari o'rnatilganligiga ishonch hosil qiling.


Keling, loyiha katalogini yaratamiz, unda umumiy pastki katalog yaratamiz va uning ichida - quyidagi kodli index.php fayli:


Esda tutingki, biz bu yerda kuchli yozishni e'lon qilamiz - bu sizning ilovangizdagi har bir PHP faylining boshida bajarishingiz kerak bo'lgan narsa - chunki tipga ishora qilish nosozliklarni tuzatish va sizdan keyin kodlashadiganlar tomonidan aniq tushunish uchun muhimdir.



php -S localhost: 8080 -t public/

Endi brauzerda http://localhost:8080/ manzilini oching. Koʻrsatilgan Salom Dunyo! xatolar yo'qmi?


Ajoyib. Keling, keyingi bosqichga o'tamiz!

Ishga tushirish va uchinchi tomon paketlari

PHP bilan birinchi marta ishlashni boshlaganingizda, ehtimol siz boshqa PHP fayllaridan funksionallik yoki konfiguratsiya olish uchun kiritish yoki talab iboralaridan foydalangansiz. Umuman olganda, buning oldini olish yaxshiroqdir, chunki bu boshqa odamlarga kodni tushunishni va bog'liqliklar qaerdaligini tushunishni ancha qiyinlashtiradi. Bu disk raskadrovkaga aylanadi dahshatli tush.


Chiqish - avtomatik yuklash. Bu shuni anglatadiki, ilovangiz sinfdan foydalanishi kerak bo'lganda, PHP uni qayerdan topishni biladi va uni chaqirilgan paytda avtomatik ravishda yuklaydi. Bu xususiyat PHP 5 dan beri mavjud, ammo faqat PSR-0 (avtomatik yuklash standarti, bugungi kunda PSR-4 bilan almashtirilgan) paydo bo'lishi bilan faol foydalanila boshlandi.


Biz o'z avtoyuklagichimizni yozish bilan bog'liq qiyinchiliklarni boshdan kechirishimiz mumkin edi, lekin biz uchinchi tomon bog'liqliklarini boshqarish uchun Composer-ni tanlaganimiz va u allaqachon juda qulay avtomatik yuklovchiga ega bo'lganligi uchun biz bundan foydalanamiz.

O'rta dastur

Agar siz so'rovlar tashqaridan markazga o'tadigan va teskari yo'nalishda javob beradigan dasturni piyoz sifatida tasavvur qilsangiz, o'rta dastur so'rovlarni qabul qiladigan piyozning har bir qatlami bo'lib, ehtimol javoblar bilan biror narsa qiladi va ularni uzatadi. pastki qatlam yoki javob hosil qiladi va uni yuqori qatlamga yuboradi. Bu, agar vositachi dastur so'rovlarni ba'zi shartlarga, masalan, mavjud bo'lmagan yo'l so'roviga mos kelishini tekshirsa sodir bo'ladi.


Agar so'rov tugallangan bo'lsa, ariza uni qayta ishlaydi va javobga aylantiradi. Shundan so'ng, har bir oraliq qatlam javobni teskari tartibda oladi, ehtimol uni o'zgartiradi va keyingi qatlamga o'tkazadi.


Oraliq qatlamlardan foydalanish imkoniyatlari:

  • Rivojlanish jarayonida nosozliklarni tuzatish.
  • Ishlab chiqarishda asta-sekin istisnolardan foydalanish.
  • Kiruvchi so'rovlar chastotasini cheklash.
  • Qo'llab-quvvatlanmaydigan media turlari bo'yicha so'rovlarga javoblar.
  • CORS ishlovi.
  • So'rovlarni tegishli qayta ishlash sinflariga yo'naltirish.

Ushbu vaziyatlarning barchasini hal qilish uchun vositalarni amalga oshirishning yagona yo'li vositachi dasturmi? Umuman yo'q. Ammo o'rta dastur ilovalari so'rov/javob aylanishini ancha aniqroq qilish imkonini beradi, bu esa nosozliklarni tuzatishni sezilarli darajada soddalashtiradi va rivojlanishni tezlashtiradi.


Biz oxirgi stsenariy uchun o'rta dasturdan foydalanamiz: marshrutlash.

Marshrutlash

Router so'rovdagi ma'lumotlardan qaysi sinfga ishlov berish kerakligini aniqlash uchun foydalanadi (masalan, URI /mahsulotlar/binafsha liboslar/medium argument sifatida ko'rsatilgan binafsha libosli ProductDetails::class sinfidan foydalanib qayta ishlanishi kerak).


Bizning ilovamiz mashhur FastRoute routeridan PSR-15-ga mos o'rta dasturni amalga oshirish orqali foydalanadi.

O'rta dastur menejeri

Ilovamiz istalgan oraliq qatlam bilan ishlashi uchun bizga dispetcher kerak.



bastakor relay/relay talab qiladi:2.x@dev

Va PSR-15 spetsifikatsiyasi PSR-7-ga mos keladigan HTTP xabarlarini tashish uchun o'rta dasturni amalga oshirishni talab qilganligi sababli, biz Zend Diactoros-dan foydalanamiz.


bastakor zendframework/zend-diactorosni talab qiladi

Oraliq qatlamlarni qabul qilish uchun Relayni tayyorlaylik.


// ... DI\ContainerBuilder-dan foydalaning; ExampleApp\HelloWorld-dan foydalaning; Relay\Relay dan foydalaning; Zend\Diactoros\ServerRequestFactory-dan foydalaning; DI\create funksiyasidan foydalaning; // ... $container = $containerBuilder->build(); $middlewareQueue =; $requestHandler = yangi Relay ($middlewareQueue); $requestHandler->

16-qatorda biz ServerRequestFactory::fromGlobals() dan yangi so'rov yaratish uchun zarur bo'lgan barcha ma'lumotlarni to'plash va uni Relayga uzatish uchun foydalanamiz. Bu so'rov o'rta dastur stekiga tushadi.


Endi FastRoute va so'rovni qayta ishlash moslamasini qo'shamiz (FastRoute so'rovning haqiqiyligini va bizning ilovamiz tomonidan qayta ishlanishi mumkinligini aniqlaydi va so'rovni qayta ishlovchi so'rovni ushbu marshrut uchun sozlangan ishlov beruvchiga uzatadi).


kompozitor o'rta dasturlarni/tezkor marshrutlarni/so'rovlarni qayta ishlashni talab qiladi

Endi ishlov beruvchi sinfi uchun marshrutni aniqlaylik Salom Dunyo!.. Bu yerda biz /hello marshrutidan asosiy URI dan boshqa marshrutdan foydalanish imkoniyatini namoyish qilish uchun foydalanamiz.


// ... DI\ContainerBuilder-dan foydalaning; ExampleApp\HelloWorld-dan foydalaning; FastRoute\RouteCollector-dan foydalaning; Middlewares\FastRoute-dan foydalaning; Middlewares\RequestHandler-dan foydalaning; Relay\Relay dan foydalaning; Zend\Diactoros\ServerRequestFactory-dan foydalaning; DI\create funksiyasidan foydalaning; FastRoute\simpleDispatcher funksiyasidan foydalaning; // ... $container = $containerBuilder->build(); $routes = simpleDispatcher(funksiya (RouteCollector $r) ( $r->get("/salom", HelloWorld::class); )); $middlewareQueue = yangi FastRoute($routes); $middlewareQueue = new RequestHandler(); $requestHandler = yangi Relay ($middlewareQueue); $requestHandler->dastak (ServerRequestFactory::fromGlobals());

Uning ishlashi uchun HelloWorld dasturini chaqiriladigan sinf sifatida yangilashingiz kerak, ya'ni bu sinf funksiya sifatida chaqirilishi mumkin.


// ... sinf HelloWorld ( __invoke( umumiy funksiyasi): void ( echo "Salom, avtomatik yuklangan dunyo!"; chiqish; ) )

Qo'shilgan chiqishga e'tibor bering; sehrli usulda __invoke() . Tez orada bu nimani anglatishini tushunasiz.



// ... Zend\Diactoros\ServerRequestFactory-dan foydalaning; DI\create funksiyasidan foydalaning; DI\get funksiyasidan foydalaning; FastRoute\simpleDispatcher funksiyasidan foydalaning; // ... $containerBuilder->addDefinitions([ HelloWorld::class => create(HelloWorld::class) ->constructor(get("Foo")), "Foo" => "bar" ]); $container = $containerBuilder->build(); // ... $middlewareQueue = yangi FastRoute($routes); $middlewareQueue = yangi RequestHandler($konteyner); $requestHandler = yangi Relay ($middlewareQueue); $requestHandler->dastak (ServerRequestFactory::fromGlobals());

Voila! Brauzeringizni qayta ishga tushirganingizda, siz ko'rishingiz kerak Salom, bar dunyosi!.

Javoblarni to'g'ri yuborish

HelloWorld-da chiqish bayonotini eslatganimni eslaysizmi?


Bu oddiy javob olishimizga ishonch hosil qilishning oddiy usuli, ammo bu brauzerga chiqishni yuborishning eng yaxshi usuli emas. Ushbu qo'pol yondashuv HelloWorld-ni boshqa sinf tomonidan bajarilishi kerak bo'lgan qo'shimcha hisobot ishlarini bajarishiga sabab bo'ladi, bu esa sarlavhalar va holat kodlarini yuborishni juda qiyinlashtiradi, shuningdek, dasturning yopilishiga olib keladi va o'rta dasturning ishlashiga hech qanday imkoniyat qoldirmaydi. keyin Salom Dunyo.



Javobni qaytarish uchun HelloWorld-ni yangilaymiz.


// ... nom maydoni ExampleApp; Psr\Http\Message\ResponseInterface-dan foydalaning; class HelloWorld ( private $foo; private $response; public function __construct(string $foo, ResponseInterface $response) ( $this->foo = $foo; $this->response = $response; ) umumiy funktsiya __invoke(): ResponseInterface ( $response = $this->response->withHeader("Content-Type", "matn/html"); $response->getBody() ->write(" Salom, ($this->foo) dunyo!"); return $response; ) )

HelloWorld yangi Response ob'ekti bilan ta'minlanishi uchun konteyner ta'rifini yangilaymiz.


// ... Middlewares\RequestHandler-dan foydalaning; Relay\Relay dan foydalaning; Zend\Diactoros\Response-dan foydalaning; Zend\Diactoros\ServerRequestFactory-dan foydalaning; DI\create funksiyasidan foydalaning; // ... $containerBuilder->addDefinitions([ HelloWorld::class => create(HelloWorld::class) ->constructor(get("Foo"), get("Response")), "Foo" => " bar", "Javob" => function() (yangi Response(); ), ]); $container = $containerBuilder->build(); // ...

Agar biz sahifani hozir yangilasak, biz bo'sh ekranga ega bo'lamiz. Ilova o'rta dastur menejeridan to'g'ri Response ob'ektini qaytaradi va keyin... nima?


Bu shunchaki u bilan hech narsa qilmaydi.


Bizga yana bitta vosita kerak: emitent. U ilova va veb-server (Apache, nginx va boshqalar) o'rtasida joylashadi va sizning javobingizni so'rovni yaratgan mijozga yuboradi. Emitent shunchaki Response ob'ektini oladi va uni server API tushunadigan ko'rsatmalarga aylantiradi.


Yaxshi xabarlar! Biz so'rovlarni boshqarish uchun ishlatadigan Zend Diactoros to'plami PSR-7 javoblari uchun emitentni o'z ichiga oladi.


Misol oddiy bo'lishi uchun biz bu erda juda oddiy emitentdan foydalanmoqdamiz. Bu ancha murakkabroq bo'lishi mumkin bo'lsa-da, katta hajmdagi yuklab olishlar bo'lsa, haqiqiy dastur avtomatik ravishda oqim emitentidan foydalanish uchun sozlanishi kerak. Bu Zend blogida yaxshi tasvirlangan.


Dispetcherdan Javobni olish va uni emitentga yuborish uchun public/index.php ni yangilaymiz.


// ... Relay\Relay dan foydalaning; Zend\Diactoros\Response-dan foydalaning; Zend\Diactoros\Response\SapiEmitter-dan foydalaning; Zend\Diactoros\ServerRequestFactory-dan foydalaning; DI\create funksiyasidan foydalaning; // ... $requestHandler = yangi Relay($middlewareQueue); $response = $requestHandler->dastak (ServerRequestFactory::fromGlobals()); $emitter = yangi SapiEmitter(); return $emitter->emit($response);

Keling, sahifani qayta yuklaymiz - biz biznesga qaytamiz! Javobni yanada ishonchli qayta ishlash vaqti keldi.


15-qator so'rov/javob aylanishini tugatadi va veb-server onlayn bo'ladi.

Tugallash

44 qatorli kod va bir nechta keng qoʻllaniladigan, har tomonlama sinovdan oʻtgan, ishonchli, oʻzaro ishlash mumkin boʻlgan komponentlar bilan biz zamonaviy PHP ilovasi uchun yuklash dasturini amalga oshirdik. U PSR-4, PSR-7, PSR-11 va PSR-15 standartlari bilan mos keladi, shuning uchun siz HTTP xabarlarini amalga oshirishning keng doirasi, DI konteynerlari, vositachi dasturlari va dispetcherlarga kirishingiz mumkin.


Biz ba'zi texnologiya va mulohazalarni o'rganib chiqdik, lekin umid qilamanki, siz yangi ilovani yuklashning soddaligini unga qo'shiladigan ramka tartibsizliklarisiz ko'rishingiz mumkin. Umid qilamanki, siz hozirda mavjud ilovalaringizda ushbu texnologiyalardan foydalanishga yaxshiroq tayyorlanasiz.

Teglar: teglar qo'shish

Bugun siz PHP ramkalarining barcha ijobiy va salbiy tomonlari bilan ro'yxatini ko'rasiz. Umid qilamanki, bu ro'yxat siz uchun foydalidir. Xo'sh, ketaylik!

Laravel


Majburiy PHP versiyasi – 7

Laravel - bu MVC arxitekturasidan foydalangan holda tezkor dasturlarni ishlab chiqish uchun mo'ljallangan keng qamrovli ramka. Bugungi kunda u barcha PHP ramkalar ichida eng ko'p qo'llaniladi va ishlab chiquvchilar orasida juda ko'p muxlislarga ega.

Taroziga soling:

  • MVC arxitekturasining mavjudligi (jumladan, PHP 7 uchun)
  • Birlik sinovi (HHVM uchun FAST)
  • Abstraktsiyaning yuqori darajasi
  • Dinamik usullar yordamida ortiqcha yuklanishdan qochish imkoniyati
  • O'rnatilgan funksionallikning katta miqdori
  • To'lovlarni Stripe tizimi bilan integratsiya qilish imkoniyati
  • Ishonchli ma'lumotlarni shifrlash tizimi

Phalcon


Majburiy PHP versiyasi – 5.3

Phalcon PHP uchun MVC-yo'naltirilgan ramka hisoblanadi. Boshqa ramkalardan farqli o'laroq, Phalcon nisbatan kichik miqdordagi resurslarni talab qiladi, bu HTTP so'rovlarini juda tez qayta ishlashga olib keladi. Bu xususiyat oldindan biror narsa aytish qiyin bo'lgan tizimlar bilan ishlaydigan ba'zi ishlab chiquvchilar uchun hal qiluvchi bo'lishi mumkin.

Phalcon ishlab chiquvchilarga o'zining SQL dialekti: PHQL kabi ma'lumotlarni saqlash vositalari bilan ta'minlaydi, shuningdek MongoDB uchun ob'ekt hujjatlarini xaritalash. Ushbu ramkaning boshqa xususiyatlariga quyidagilar kiradi: shablon dvigatellari, shakl quruvchilar, ilovalarni ishlab chiqish qulayligi, xalqaro tilda yordam berish va boshqalar. Phalcon - bu turli xil REST API-larini yaratish va to'liq veb-ilovalarni ishlab chiqish uchun ideal variant.

Taroziga soling:

  • Yuqori tezlik va past ortiqcha yuk
  • O'ziga xoslik - bu ramka C dasturlash tilining kengaytmasi sifatida yaratilgan.
  • Juda yaxshi o'rnatilgan himoya
  • Hujjatlarning katta miqdori
  • Ishlab chiquvchiga yo'naltirilgan

Kamchiliklari:

  • HHVM bilan ishlamaydi

Simfoniya


Majburiy PHP versiyasi – 5.5.9

Symfony veb-saytlar va veb-ilovalarni ishlab chiqish uchun eng mashhur ramka hisoblanadi. Symfony komponentlari Drupal, phpBB va eZ Publish kabi ilovalarni yaratishda foydalanilgan bir-biriga bog'liq bo'lmagan, qayta foydalanish mumkin bo'lgan komponentlar to'plamidir.

Taroziga soling:

  • Bayt-kod keshlash tufayli yuqori unumdorlik
  • Ishonchlilik
  • Yaxshi hujjatlarning mavjudligi, qo'llab-quvvatlash
  • Yaxshi qo'llab-quvvatlash; to'liq shakllangan ramka

Kamchiliklari:

  • Yaxshi hujjatlar mavjudligiga qaramay, ushbu ramkani o'zlashtirish juda qiyin.

CodeIgniter

Majburiy PHP versiyasi – 5.4

CodeIgniter juda kam xotirani egallagan kuchli PHP ramkasidir. U boy veb-ilovalarni yaratish uchun oddiy va oqlangan ishlab chiqish to'plamini xohlaydigan ishlab chiquvchilar uchun yaratilgan.

Taroziga soling:

  • Asosiy e'tibor dasturchilarga qaratilgan
  • Hech qanday qo'shimcha bog'liq ob'ektlar yoki boshqa yordam talab qilmaydi
  • MySQL kabi standart ma'lumotlar bazalaridan foydalangan holda muntazam veb-xosting xizmatlaridan foydalanish qobiliyati
  • Ko'pgina boshqa ramkalardan ustundir (MVC bo'lmagan)
  • Yaxshi hujjatlarning mavjudligi, shuningdek LTS (uzoq muddatli qo'llab-quvvatlash)

Kamchiliklari:

  • Nom maydoni yo'q, boshqa tomondan, u ish tezligini oshirishi mumkin
  • Boshqa shunga o'xshash ramkalardan farqli o'laroq, birlik sinovi uchun noqulay
  • To'g'ridan-to'g'ri ramka ichiga qurilgan oz sonli kutubxonalar
  • Bu zamonaviy PHP funktsiyalarini qo'llab-quvvatlamaydigan ancha eskirgan ramka
  • Xavfsizlik muammolarining mavjudligi juda aniq va yillar davomida ishlab chiqish guruhi tomonidan hal qilinmagan

CakePHP

Majburiy PHP versiyasi – 5.5.9

CakePHP - bu dastur ishlab chiqishni osonlashtiradigan va tezroq, kamroq kod talab qiladigan ramka. Bu PHP 7 uchun zamonaviy asos boʻlib, u maʼlumotlar bazalariga kirishning yanada moslashuvchan darajasini hamda kuchli kod ishlab chiqarish tizimini taʼminlaydi. Ushbu xususiyatlar tufayli kichik va murakkab tizimlarni ishlab chiqish osonroq, tezroq va, albatta, yanada yoqimli bo'ladi. Agar siz tez rivojlanmoqchi bo'lsangiz, CakePHP aynan siz izlayotgan narsadir.

Taroziga soling:

  • PHP 5.5+ versiyalarini qo'llab-quvvatlaydigan zamonaviy ramka
  • Kuchli kod ishlab chiqarish tizimi, tezkor rivojlanish imkoniyatlari
  • Tijoriy veb-ilovalarni ishlab chiqish uchun juda mos keladi (MIT litsenziyasi)
  • O'rnatilgan ma'lumotlar bazasiga kirish, shuningdek keshlash, tekshirish va autentifikatsiya
  • Keng qamrovli saqlash vositalari saytlararo skriptlarni o'z ichiga oladi
  • Saytlararo skript in'ektsiya hujumlari va SQL in'ektsiya hujumlarini oldini oling
  • CSRF, shuningdek shaklni tekshirish
  • Yaxshi hujjatlarning mavjudligi
  • Faol rivojlanmoqda

Kamchiliklar:

  • Restful API ishlab chiqish uchun Laravel yoki yuqorida aytib o'tilgan boshqa ramkalar kabi yaxshi emas

Zend


Kerakli PHP versiyasi – 5.6, 7.0

Zend - bu 158 milliondan ortiq o'rnatishga ega professional PHP kengaytmalari to'plami bo'lgan ramka. Ushbu ramka PHP 5.6+ yordamida veb-ilovalar va xizmatlarni ishlab chiqish uchun ishlatiladi va dasturlash tilining keng xususiyatlaridan foydalangan holda 100% ob'ektga yo'naltirilgan kodni kafolatlaydi.
Zend ramkasi paketga bog'liqliklarni kiritish uchun Composer-dan foydalanadi; PHPUnit - barcha paketlarni sinab ko'rish uchun; Travis CI - uzluksiz integratsiya sinovlari uchun xizmat sifatida.

Taroziga soling:

  • Tijoriy ilovalarni ishlab chiqish uchun ideal
  • Ob'ektga yo'naltirilgan
  • Ko'p tekshirish komponentlari, tasmalar va shakllar
  • Bir-biriga bog'liq bo'lmagan komponentlarni o'z ichiga oladi

Kamchiliklari:

  • Boshqa ramkalar kabi tezkor ilovalarni ishlab chiqish uchun mos emas

FuelPHP


Majburiy PHP versiyasi – 5.3.3

FuelPHP - bu PHP 5.3+ uchun oddiy, moslashuvchan, foydalanuvchilar uchun qulay ramka bo'lib, u boshqa ramkalardagi barcha eng yaxshi g'oyalarni o'zida mujassam etgan, u endigina chiqarilgan!

Taroziga soling:

  • Keshlash ixtiyoriy
  • Paket autentifikatsiyasi
  • Uzluksiz rivojlanish imkoniyati
  • URL marshrutlash
  • Yangi versiya toʻliq obʼyektga yoʻnaltirilgan boʻladi va bogʻlovchi yordamida oʻrnatilishi mumkin va bir oʻrnatishdan keyin bir nechta ilovalar qoʻllab-quvvatlanishi mumkin.

Kamchiliklari:

  • Yangi boshlanuvchilar uchun o'rganish uchun juda murakkab ramka (kichik miqdordagi hujjatlar)
  • Hozircha hech qaerda qo'llab-quvvatlanmaydigan juda yangi ramka
  • Ochiq manbalar hamjamiyatidan kichik investitsiyalar (masalan, Laravel yoki Phalcon bilan solishtirganda)

Yupqa


Majburiy PHP versiyasi – 5.5

Slim - bu PHP uchun mikro-ramka bo'lib, kichik, ammo kuchli veb-ilovalar va API-larni tezda ishlab chiqishga yordam beradi.

Taroziga soling:

  • Mavjud eng tezkor RESTful ramkasi
  • Ushbu ramka bilan muvaffaqiyatli ishlashni boshlash uchun etarli hujjatlarning mavjudligi
  • Kichik RESTful API-larni ishlab chiqish uchun ideal
  • Faol rivojlanmoqda

Kamchiliklari:

  • O'rnatish vaqtida bir nechta mumkin bo'lgan bog'lovchi qo'shimchalarini taklif qiladi

Phpixie


Majburiy PHP versiyasi – 5.3

Phpixie PHP ning eng keng qamrovli ramkalaridan biridir. U sukut bo'yicha mukammal kriptografiya va xavfsizlik vositalarini, MongoDB qo'llab-quvvatlashini va bog'lovchi bilan kodni "almashish" qobiliyatini o'z ichiga oladi.

Taroziga soling:

  • Nisbatan yangi ramka
  • Ishni boshlash oson bo'lgan ramka
  • Hujjatlarda koddan foydalanish misollari mavjud
  • Yaxshi marshrutlash tizimi
  • Kodni tezda kompilyatsiya qilish qobiliyati
  • HMVC yo'naltirilgan

Kamchiliklari:

  • Modullarning kam soni
  • Bog'liq ob'ektlardan mustaqil ravishda yaratilgan komponentlar qo'llab-quvvatlanmaydi

Yog'siz


Majburiy PHP versiyasi – 5.5

Bu PHP uchun kuchli, ammo foydalanish oson mini-ramka boʻlib, sizga dinamik va mustahkam veb-ilovalarni ishlab chiqishda yordam berish uchun moʻljallangan va eng muhimi, buni juda tez bajaring!

Taroziga soling:

  • Minimal xotira hajmini egallaydi
  • O'rganish oson
  • URL marshrutlash, kesh modellari, kod uchun optimallashtirishlarni tezda boshqaradi
  • Ko'p tilli ilovalar uchun yaxshi
  • SQL uchun tayyor qo'llab-quvvatlash yoki SQL yo'q
  • Ma'lumotlar bazalarining mavjudligi
  • Ko'pgina dasturiy ta'minot paketlari, jumladan, birlik testi, tasvirlar
  • Manba fayllarini qayta ishlash, JavaScript/CSS optimallashtirish, maʼlumotlarni tekshirish, ochiq identifikator mavjudligi va boshqalar

Kamchiliklari:

  • Mikro ramkalar uchun juda ko'p narsa
  • Yuqoridagi ramkalar bilan solishtirganda yangi variantlar mavjud emas
  • Ushbu muammoni hal qiladigan boshqa MVC ramkalaridan farqli o'laroq, kodni takrorlashga ruxsat beradi

Yii 2.0

Afzalliklari:

  • O'rnatish oson
  • Yii butunlay ob'ektga yo'naltirilgan ramka bo'lib, PHPning ilg'or xususiyatlaridan to'liq foydalanadi
  • Yii ramkasi sizning ehtiyojlaringizga mos ravishda osongina sozlanishi mumkin. Ramkaning deyarli har bir komponenti kengaytirilishi mumkin
  • Yii Codeception bilan chambarchas integratsiyalashgan
  • Yii xavfsizroq ilova yaratishga yordam beradigan bir necha usullarni taqdim etadigan Xavfsizlik komponenti bilan birga keladi
  • Yii bizga ustuvor bo'lmagan vazifalarga sarflangan vaqtni qisqartirishga va asosiy vazifaga e'tibor berishga yordam beradigan bir nechta vositalarni taqdim etadi.
  • Eng yaxshi ishlash uchun sozlash oson

Kamchiliklari:

  • Kuchli sinf ulanishi. Tizimdagi hamma narsa CComponent-dan meros bo'lib o'tadi. Modellarga statik usullar orqali kirish, bu sizga kerak bo'lmagan joyda ham ulardan foydalanish imkonini beradi.
  • Shablon mexanizmi integratsiyasi (Twig, Smarty) mahalliy shablonlarga qaraganda ancha zaif. Va men mahalliylardan foydalanishni xohlamayman.

Aura


Majburiy PHP versiyasi – 5.4

Aura loyihasi har qanday manba kodlari bazasida ishlatilishi mumkin bo'lgan yuqori sifatli, yaxshi sinovdan o'tgan, standartlarga mos keladigan, mustaqil semantik versiyalar kutubxonasi paketlari to'plamidir.

Har bir kutubxona o'z ichiga oladi va faqat asosiy maqsadlar uchun zarur bo'lgan narsalarni o'z ichiga oladi. Kutubxona paketlarining har biri butunlay mustaqil: u nafaqat ramkalar, balki boshqa paketlar bilan ham bog'langan. Shunday qilib, bu xususiyat ishlab chiquvchilarga ma'lum bir ramkaning kichik bir qismidan yoki butun ramkadan foydalanish imkoniyatini beradi.

Taroziga soling:

  • Kichik xotirani egallaydi
  • Ramka bilan ishlashni boshlash uchun qo'llanmalarning mavjudligi
  • Kichik REST API bilan ishlash uchun ideal
  • Hozirda faol rivojlanish bosqichida
  • Qo'shimchalarga quyidagilar kiradi: HTTP keshlash va Flash

Ana xolos! Umid qilamanki, ushbu ro'yxat va barcha PHP ramkalarining tavsifi siz uchun foydali bo'ladi. Qaysi PHP ramkasidan foydalanasiz? Izohda menga xabar bering

Ushbu maqola tarkibni sodda saqlash uchun texnik atamalar yoki tushunchalarni qamrab olmaydi. Agar siz dasturchi bo'lsangiz, nima uchun afzal ko'rishingiz kerakligini aytaman sof PHP o'rniga ramkalardan foydalaning loyihalaringiz uchun. Agar siz tadbirkor bo'lsangiz, nima uchun dasturiy ta'minot ishlab chiqaruvchisi bo'lishini talab qilish juda muhimligini aytib beraman. ishlab chiqilgan veb-ilovalar va veb-saytlar yordamida PHP ramkalar.

Taqqoslash sof PHP va PHP ramkasi matematikaga o'xshash bo'lishi mumkin.

Qiyin matematik masalani hal qilish uchun siz qog'oz varaqni olishingiz yoki uni hal qilish uchun ilmiy kalkulyatordan foydalanishingiz mumkin.

Matematik muammoning yechimini qog‘ozda topish sof PHP da kodlashga o‘xshaydi, ilmiy kalkulyatordan foydalanish esa ramkalar yordamida kodlashga o‘xshaydi.

Xo'sh, men nimani nazarda tutyapman?

Native PHP - qog'oz bilan matematika

Yaxshi talaba muammoni bir necha bosqichda hal qilishi mumkin. Aniqlik darajasi - 75% dan 100% gacha.

O'rtacha o'quvchi muammoni hal qila olmaydi yoki yo'q, u bir xil muammoni hal qilish uchun bir necha bosqichlarni yozadi. Bu erda aniqlik darajasi 50% dan 75% gacha.

Yomon talaba muammoni umuman hal qila olmaydi. Biroq, u muammoni hal qilish uchun juda ko'p qadamlarni yozadi. Aniqlik darajasi - 0% dan 50% gacha.

Ilmiy kalkulyator

Har bir talaba kalkulyatordan foydalanishni o‘rgangach, masalani 100% aniqlik bilan yecha oladi. Kalkulyatorda oldindan belgilangan formulalar aniq natijalarni tezroq beradi.

Sof PHP bilan muammo

Sof PHP Odamlar o'z mantiqlarini yozishni boshlaganlarida, bu murakkablashadi. Ba'zi odamlar muammoni bir necha qator kodlarda hal qila oladilar, boshqalari buni hatto bir necha yuzlab kodlarda ham hal qila olmaydi. Natijada, ikkalasi ham bir-birining kodini o'qiy olmaydi. Shunday qilib, bu erda yuzaga keladigan muammo - bu nomuvofiqlik.

Nima uchun ramkalarni tanlash kerak?

Ramka ishonchlilik, izchillik va katta vaqtni tejash imkonini beradi. U g'ildirakni qayta ixtiro qilishingiz shart emas, shuning uchun u boy funksiyalarga ega. Siz rivojlanish uchun deyarli barcha funksiyalarga ega bo'lasiz PHP veb-ilovalar. U OOP uslubida ishlab chiqilganligi sababli, dasturni to'liq nazorat qilish uchun mavjud funksiyalarni kengaytirishingiz mumkin. Ramka sizga yomon kod yozishga ruxsat bermaydi, agar siz buni ataylab qilmasangiz. Jamoada ishlaganingizda, butun modulingizning integratsiyasi juda oson bo'ladi va ramka ham bir-birining kodini tushunishga yordam beradi.

Loyihani ishlab chiqishni boshlaganingizda, sizga g'amxo'rlik qilishingiz kerak bo'lgan ko'p narsalar mavjud. Ramka biz uchun hamma narsani qiladi, shuning uchun dastur toza va xavfsiz ekanligiga ishonch hosil qilishimiz mumkin. MVC namunasi har qanday asosiy elementlardan biridir zamonaviy PHP ramkasi, mantiq va taqdimotni ajratish juda yaxshi amaliyotdir.

Loyihani o'zgartirish

Ertami-kechmi, agar siz yaxshi taassurot qoldirsangiz, mijoz saytni yaxshilash uchun bizga qaytib keladi. Va bu erda muhim bir nuqta keladi - agar loyiha tugallangan bo'lsa toza PHP, siz mijozning yangi istaklarini bajarish uchun juda ko'p harakat qilishingiz yoki loyiha bilan keyingi ishlashdan butunlay voz kechishingiz kerak bo'ladi. Ammo agar loyiha tugallangan bo'lsa doirasida, keyin bu holda siz tanlangan texnologiyaning barcha kuchini va go'zalligini his qilasiz. Siz qilishingiz kerak bo'lgan yagona narsa - o'zgartirishlar kiritish va yangilangan dizaynni mijozga qaytarish.

Keyin, albatta sof PHP juda yomon?

Mutlaqo yo'q. Pure PHP sizga ramka mantiqini tushunishga yordam beradi. Sizning mantiqiy fikrlashni yaxshilash mumkin toza PHP. Biroq, mahalliy PHP yomon dasturchining stoliga tushgandagina yomonlashadi. Kodlash tajribasisiz ramkaga sho'ng'imang. toza PHP. Bundan tashqari, kodlashni boshlashdan oldin ramkaning to'liq hujjatlarini o'qib chiqing, chunki undan foydalanish endi moda. mahalliy PHP ramka ichida, lekin bu bunday foydali vositadan foydalanishning mutlaqo noto'g'ri usuli.

Umuman olganda, ramkalar nima ekanligini tushunishning eng oson yo'li mening kursimdan foydalanishdir.

Biz tillar bilan ishlash uchun eng mashhur va foydali vositalar haqida gapirishni davom ettiramiz. Bu safar biz PHP ramkalari haqida gapiramiz.

Laravel

Ushbu ramka faqat va'da berishdan PHP harakatining etakchilaridan biriga qadar tez yo'lni bosib o'tdi. Qisqacha tavsif quyidagicha: ochiq manba, MVC arxitektura modeli bilan ishlash, qulay va intuitiv interfeys, kengaytirilgan funksionallik.

Oxirgi nuqta quyidagi imkoniyatlarda namoyon bo'ladi:

  1. Ko'p sonli uchinchi tomon modullarini qo'llab-quvvatlash, bu ramkaning standart imkoniyatlarini sezilarli darajada kengaytiradi.
  2. Ish paytida havolalarni yangilash uchun vaqtni behuda sarflamaslik imkonini beruvchi teskari marshrutlash - hamma narsa avtomatik ravishda sodir bo'ladi.
  3. Ma'lumotlar bazasi ob'ektlari o'rtasidagi qat'iy munosabatlarni aniqlashga yordam beradigan ajoyib ORM dizayn naqshlari.
  4. Darslarni avtomatik yuklash. Bu, bir tomondan, kiritish zarurati yo'qligi sababli kod miqdorini kamaytiradi ..., boshqa tomondan, foydalanilmagan sinflar barcha oqibatlarga kiritilmaydi.
  5. Birlik testi - xatolar to'planishining oldini olish uchun ko'p sonli testlarga ega.
  6. Ma'lumotlar bazasi versiyasini boshqarish tizimi. Agar siz mahsulotingizni tez-tez yangilab turishni kutsangiz, bu funksiya bir xil turdagi yozuvlarga vaqt sarflamaslikka imkon beradi.

Siz tushunganingizdek, bu Laravel ishlab chiquvchilari o'z mijozlariga taqdim etadigan xususiyatlarning to'liq ro'yxati emas. To'liq ro'yxat uchun rasmiy veb-saytga tashrif buyuring yoki ushbu ramka dunyosiga shaxsan kirib boring - bu sizga albatta yoqadi.

CodeIgniter

11 yoshdan oshgan ushbu ramka ishlatiladigan resurslar nuqtai nazaridan oddiyligi, soddaligi, qulayligi, har qanday darajadagi ishlab chiquvchilar uchun mo'ljallangan juda ko'p miqdordagi hujjatlar va cheklovlarning yo'qligi tufayli shuhrat qozondi. Bir vaqtlar Laravel CodeIgniter-ga raqobatchi sifatida yaratilgan, shuning uchun yaqin vaqtgacha u universal mos yozuvlar nuqtasi edi.

Oddiyligiga qaramay, har qanday mashhur ramka singari, CodeIgniter ham bir nechta foydali xususiyatlarga ega:

  1. CodeIgniter Reactor hamjamiyatidan katta yordam, jumladan kutubxonalar, modullar, andozalar va hujjatlar.
  2. SQL sintaksisiga juda o'xshash ma'lumotlar bazalari bilan ishlash shablonlari.
  3. Server tomonida keshlash imkoniyati.
  4. Buyruqlar satridan kutubxonalarni tezda kiritish uchun paket menejeridan foydalanish.

Ammo CodeIgniter oddiylik va qulaylik haqidagi asosiy g'oyadan chetga chiqmaydi. Shuning uchun, bu ramka siz uchun hamma narsani qilishini kutmasligingiz kerak, garchi rasmiy ravishda bu mumkin.

Simfoniya

Uchinchi versiyaning chiqarilishi 2015 yilda sodir bo'lganiga qaramay, bu Symfony-ning ikkinchi versiyasi bo'lib, ramkalar orasida mashhurlik bo'yicha 3-o'rinni egallaydi. Buning sababi CodeIgniter-ga o'xshaydi - tezlik va umumiy soddalik. Ammo bu funksionallikka zid kelmasligi uchun foydalanuvchidan maxsus ish uchun 3 ta versiyadan birini tanlash so'raladi:

  1. Standart nashr - bir-biri bilan tanishish va umumiy vazifalarni bajarish uchun. Hello World Edition tarqatilishi unga asoslangan bo'lib, unda benchmarklarda keyingi foydalanish uchun aynan bitta optimallashtirish skripti mavjud.
  2. Symfony CMF - CMS tizimlari bilan ishlaydigan ishlab chiquvchilar uchun moslashuv.
  3. REST Edition - REST arxitekturasi bilan ishlash uchun optimallashtirish (onlayn do'konlar, qidiruv tizimlari va boshqalar).

Simfoniya stereotipik ravishda buyruq qatori ishqibozlari uchun ramka hisoblanadi. Haqiqatan ham, o'rnatilgan SensioGeneratorBundle interfeysi matnning bir qatoridan kodingiz uchun butun skeletni olishga yordam beradi.

Rus tilidagi rasmiy hujjatlarning mavjudligi shubhasiz afzallik bo'ladi. Shuni ta'kidlash kerakki, u faqat Symfony-ning birinchi versiyasi uchun mavjud, ammo norasmiy nashrlar orasida siz rasmiy nashrlarning tarjimalarini va mustaqil yuqori sifatli hujjatlarni topishingiz mumkin.

Yii

Yii ko'plab reytinglarda Symfonyning asosiy raqobatchisi sifatida e'tirof etilgan. Buning sabablari bor: ikkala til ham to'liq stek bilan ishlaydi, ikkalasi ham GitHub-da manba kodi mavjud, ikkalasi ham shablonni ishlab chiqishni juda yaxshi ifodalaydi. Biroq, Symfony faqat model va kontroller bilan ta'minlangan bo'lsa, Yii to'liq MVC o'zaro ta'sirini ta'minlaydi. Bundan tashqari, Yii-dagi interfeys ancha qulayroq, Gii brauzer elementi yordamida kod ishlab chiqarish biroz kuchliroq va aslida Yii ishlab chiqishda ko'proq vaqtni tejash imkonini beradi va dastur biroz tezroq ishlaydi.

Nette Framework

Ehtimol, eng yaxshi PHP ramkalari orasida eng kam ma'lum bo'lgan, uning 13 yoshi va keng imkoniyatlarini hisobga olgan holda hayratlanarli. Mana ulardan ba'zilari:

  1. Eng samarali PHP ramkalaridan biri.
  2. Yangi boshlanuvchilar uchun juda mos, o'rganish egri chizig'i juda silliq.
  3. Yordam beradigan kuchli vositalar: Tracy - xatolarni kuzatish uchun, Latte - tez va intuitiv shablon generatori, Tester - ilovangizni real sharoitlarda yuqori sifatli sinovdan o'tkazish uchun yordamchi dastur.
  4. Bitta loyihada bir nechta ishlab chiquvchilarning jamoaviy ishlashi imkoniyati.
  5. Zo'r hujjatlar va do'stona jamoa (va nafaqat Chexiyada).

Umuman olganda, agar siz hali Nette-ni sinab ko'rmagan bo'lsangiz, uni tavsiya qilamiz, agar biron bir kamchilik topsangiz, sharhlarda yozishni unutmang.

Qisqa chiziq

CakePHP mashhur Ruby on Rails klonidir, faqat PHPga qaratilgan. Barcha afzalliklari ham o'xshash.

FuelPHP - bu o'ziga xoslik yo'qligi va yuqori umidlar tufayli munosib tan olinmagan engil ramka. Siz tushunganingizdek, bu haqiqiy ish uchun yomon ta'sir qilmaydi.

Phpixie - bu ramkaning asosiy xususiyatlaridan biri yangilanishdir. Endi yangi tahrir uchun bir necha oy kutishingiz shart emas. Topildi -> tuzatish yuklab olindi -> ishlashni davom eting. Prinsip shunga o'xshash narsa.

Fat-Free - bu tez rivojlanish uchun juda engil, tez va oddiy ramka. Minimal begona tashvishlar.

Slim - bu ramkani o'rganish va PHP bilan boshlash oson, lekin Internetning kattalar professional dunyosida deyarli talab qilinmaydi.

Phalcon - bu yuqori unumdorlikka ega, xotira va fayl tizimiga ahamiyatsiz yuk bo'lgan ajoyib ramka. Salbiy tomoni shundaki, loyiha juda xom va ko'plab suv osti C-toshlarga ega.

Muharrir tanlovi
Harbiy shon-sharaf shahri ko'pchilik Sevastopolni qanday qabul qiladi. 30 batareya uning tashqi ko'rinishining tarkibiy qismlaridan biridir. Muhimi, hozir ham...

Tabiiyki, ikkala tomon ham 1944 yil yozgi kampaniyaga tayyorgarlik ko'rayotgan edi. Gitler boshchiligidagi nemis qo'mondonligi o'z raqiblarini ...

"Liberallar", "g'arb" tafakkuridagi odamlar sifatida, ya'ni adolatdan ko'ra foydani birinchi o'ringa qo'yib, shunday deyishadi: "Agar sizga yoqmasa, ...

Poryadina Olga Veniaminovna, o'qituvchi-logoped Strukturaviy bo'linmaning joylashgan joyi (nutq markazi): Rossiya Federatsiyasi, 184209,...
Mavzu: M - M tovushlari. M harfi Dastur vazifalari: * M va M tovushlarini bo‘g‘in, so‘z va gaplarda to‘g‘ri talaffuz qilish malakasini mustahkamlash...
1-mashq. a) So'zlardan boshlang'ich tovushlarni tanlang: chana, shapka. b) s va sh tovushlarini artikulyatsiyaga qarab solishtiring. Bu tovushlar qanday o'xshash? Farqi nima...
Kutish mumkinki, ko'pchilik liberallar fohishalikda sotib olish va sotish predmeti jinsiy aloqaning o'zi ekanligiga ishonishadi. Shunung uchun...
Taqdimotni rasmlar, dizayn va slaydlar bilan ko'rish uchun faylni yuklab oling va uni PowerPoint dasturida oching...
Tselovalnik Tselovalniklar - Moskva Rusining mansabdor shaxslari, zemshchina tomonidan tuman va shaharlarda sud ishlarini amalga oshirish uchun saylanadi ...