Yii фреймворкын үйренеміз (шәйнектен шәйнектерге). Yii-ді орнату.
Codeo жұрты, армысың, дей отырып, сіздердің алдарыңызда — Шәйнек, өзінің ұмытылмас, бірнеше жыл ел аузында аңыз болар мақалалар сериясын бастайды. Ең бірінші мақала қазір сайттардың, өтірік айтпасам 90 пайызы жұмыс істеп тұрған php тілінде жазылған Yii фреймворкы туралы бастаймын. Неге? Өйткені, айта беріп майы таусылған вордпрес пен друпалдың күші жетпейтін бір жоба үшін осыны таңдап алдым. Иә, иә, олардың фанаттары қабақтарын түйіп қалған шығар, күші жетеді, келісем, бірақ оңға солға қиын бұрылатын ол CMS-терден гөрі Yii сияқты фреймворк пайдаланғаным артық.
Сонымен, біз неден бастаймыз? Ауыз көпіртіп фреймворкты мақтап аламыз ба немесе бірден былапыт код жазамыз ба? Жоқ, бірінші мақтап алайық, сонда менің фанаттарым да көбейіп қалар ;).
Yii туралы
Yii — бұл веб бағдарламалау фреймворгы, атын қытайшадан аударғанда, егер мен ағылшыншадан дұрыс аударған болсам және олар қытайшадан дұрыс аударған болса, "қарапайым және эволюциялық" дегенді білдіреді екен.
Yii-ді пайдаланғанда MVC паттернін пайдаланып жазу керек болады, кейін онда деректер қорына қосылуға керекті (Active Record), қауіпсіздікке арналған, тестілеуге арналған, кештеуге арналған барлық құрал саймандар бар, қысқасы, фреймворктар не білуі керек, соның бәрін біледі.
Айтқандай, біздің қарайтынымыз жақында шыққан Yii-дің 2.0 нұсқасы. Оған, php-дің 5.4.0 нұсқасынан жоғары нұсқалары қажет.
Ал онда «Көп сөз (?) сөз» дей отырып, бастаймыз.
Yii-ді орнату
Алдымен yii архив файлын жүктеп аламыз. Жүктеп алынған файлды өзіміздің серверімізге қоямыз. Енді, ол туралы талқылап кетсем ұят болар, қысқасы apache болса htdocs деген папканың ішіне саласыз ғой.
Кейін тексереміз:
http://localhost/basic/web/index.php
Егер мынандай бет ашылса, ҚҰТТЫҚТАЙМЫН, сіз Yii фреймворкын орнаттыңыз.
Бағдарламаның құрылымы
Сонымен, ашылған бетте біз мысал ретінде бірнеше бетке ары бері өтуімізге болады. Беттің астыңғы жағында кішкентай құрал-саймандар тақтасын байқауыңызға болады. Ол debug жасауға қажет болатын құрал. Ал бағдарламамыздың құрылымын жіліктеп жіліктеп қарап жіберсек:
basic/ бағдарламаның басты папкасы
composer.json Composer деген пәленікі, шәйнек болғандықтан ол туралы әлі ештеңе білмейм (
config/ баптаулар сақталатын папка
console.php консольда қосылғанда керек баптаулар
web.php веб бет болып ашылғанда керек болатын баптаулар
commands/ консоль командалары жататын жер
controllers/ контроллерлер тұратын орын
models/ модельдер сақталатын орын
runtime/ Yii іске қосылғанда генерациялайтын файлдар орны, логтар тағы анау-мынау
vendor/ Composer арқылы орнатылған пакеттер тұратын жер, Yii фреймворкының өзі де осында тұрады
views/ көрілімдер, яғни, веб беттер шаблондары орналасатын жер
web/ бағдарламаның негізгі веб беті орналасқан жер
assets/ керекті ресурстар тұратын жер (суреттер, javascript)
index.php бағдарламаның қосылған кезде орындалатын файлы
yii yii консольге арналған командасы
Мұндай құрылым фреймворк MVC паттерніне негізделіп жазылғандықтан. Егер оны білмейтін болсаңыз оқып алуды кеңес беремін. Негізі сырттан сұранысты тікелей тек basic/web/index.php файлы ғана қабылдайды, қалғанына сол index.php файлы жібереді. Енді жалпы бағдарламаның құрылымы:
Мұндай көп нәрсе түсініксіз болса, қорықпа достым, маған да көбісі түсініксіз )). Оларды кейін шетінен қарау барысында түсінеміз деп ойлаймын.
Фреймворктың сұраныстарға қалай жауап беретінін тағы басқа нәрселерді келесі жолы қарастырамыз, өйткені, онда контроллердің не үшін керек екенін және т.б. білу керек. Міне осы, бүгінге шәйнектерге осы да жетеді. Келесі мақаланы күтіңіздер, келесі жолы алғашқы бір жұмыс істейтін веб бет жазамыз, көп күттірмеймін, уәде берем ;).
-
+6
Қорықпа, фонаттарыңның қатары көп. Yii-ды жанындай көретіндердің қатеры жетеді.
(мүмкін болашақта).Kohana өте жақсы фреймворк(пайдаланамын), бірақ оның документациясы нашарлау, плюс соңғы кездегі рефакторингтары дамуын сәл тежеп тұр...өкінішке орай әрине.
Бірақ қазір Laravel, laravel.com фреймворкі бар. Шыққанына жыл немесе жылдан асқан болар, жас.
Бұл ФВ та авторлары танымал ФВ тардың қателіктерңн және Ruby дің артықшылық тұстарын ескерген. Минусы тек: комюнити аз, даму үстінде(ол түсінікті де) және танымалдылығы нашар…