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
17 пікір
shainek
Codeo жұрты, шимайымды зорға таптым ғой, оңайрақ жерге қоюға болмай ма ((
yerbol89
Abylai_adil -ды ортаға шақырамыз :)
shainek
Осы сайттың иесі ма ол?
kamyrov
Осы сайттың мықты администраторы)
yerbol89
Осы жұрттар Kohana мен CackePHP қолданып жатады. Yii артықшылықатын айта кетесің ба, басқа фреймворктарға қарағанда.

Жоқ, бірінші мақтап алайық, сонда менің фанаттарым да көбейіп қалар ;).
Қорықпа, фонаттарыңның қатары көп. Yii-ды жанындай көретіндердің қатеры жетеді.
onlasyn
Кохана да жақсы негізі, оңай. Бірақ Йии сияқты поддержкасы жоқ, даму жәй сияқты. Сосын, Йиидегідей саймандар жоқ, өзің жазу керексің барлығын.
shainek
Келісемін, Yii-де пайдалы құралдар, консольге арналған командалар, тестілеуге арналған құралдар толып жатыр, Active Record-ты айтсайш, шіркін ))
raimbek
Ол туралы shainek жеке мақала жазса болатын сияқты ) әр түрлі фреймворктарды салыстырып )
shainek
Оны мен сияқты Шәйнек емес, барлығын көрген адам қарастыруы керек негізі…
kamyrov
Тамаша жазба, рахмет! Келесі жазбаларды күтеміз;)
onlasyn
Уау, рахмет. Жалғасын күтеміз.
vfvtnjd
Yii жаман емес арине, бірақ мен өзім пайдаланып көрмедім (мүмкін болашақта).
Kohana өте жақсы фреймворк(пайдаланамын), бірақ оның документациясы нашарлау, плюс соңғы кездегі рефакторингтары дамуын сәл тежеп тұр...өкінішке орай әрине.
Бірақ қазір Laravel, laravel.com фреймворкі бар. Шыққанына жыл немесе жылдан асқан болар, жас.
Бұл ФВ та авторлары танымал ФВ тардың қателіктерңн және Ruby дің артықшылық тұстарын ескерген. Минусы тек: комюнити аз, даму үстінде(ол түсінікті де) және танымалдылығы нашар…
shainek
Laravel-де жақсы деп шулап жатыр, бірақ Yii 2-нұсқасы шыққан соң, Laravel-дегілер Yii-ге қайтадан қайтып жатқан шығар ))
vfvtnjd
әбден мүмкін :)
vfvtnjd
Бир сурак:«yii» дурыс айтылуы калай болады? Кейбиреулер «ю-и»,«ю-ай» дейди. Мен мысалы, «й-ай-ай» деген дурыс дегенди естигем.
shainek
Оны нақты білмеймін, досым )) мен оны «у-й-й» дейм ))
Тек тіркелген қолданушылар ғана пікір қалдыра алады.