CodeIgniter
| Նախագծումը՝ | EllisLab, Inc. |
|---|---|
| Վերջին թողարկում | 2.1.3 / 8 հոկտեմբերի, 2012թ․ |
| ՕՀ | ցանկացած |
| Տեսակ | Վեբ-հավելվածների ստեղծման համար ֆրեյմվորկ |
| Արտոնագիր | [1] |
| Վեբկայք | www.codeigniter.com |
CodeIgniter, PHP ծրագրավորման լեզվով գրված բաց կոդով MVC ֆրեյմվորկ, որն նախատեսված է լիարժեք վեբ-համակարգերի և հավելվածների ստեղծման համար։ Մշակվել է EllisLab ընկերության, ինչպես նաև Ռիք Էլիսի (Rick Ellis) և Փոլ Բուրդիքի (Paul Burdick) կողմից։
Բովանդակություն
Պատմությունը[խմբագրել]
Ֆրեյմվորկիի առաջին անգամ թողարկվել է 2006թ․ փետրվարի 28-ին։ Սկսած 2011թ․ հունվարի 28-ից, երբ թողարկվեց ֆրեյմվորկի 2.0 տարբերակը, CodeIgniter-ի մշակումն իրականացվում է երկու ճյուղով՝
- CodeIgniter Core — այս ճյուղը առավել մեծ ուշադրություն է դարձնում կայունության վրա, ինչի պատճառով դանդաղ է զարգանում։
- CodeIgniter Reactor — այս ճյուղը զարգացվում է համայնքի կողմից։ Այն զարգանում է ավելի արագ և պարունակում է ամենանոր հնարավորությունները։
Առանձնահատկությունները[խմբագրել]
- CodeIgniter-ն աչքի է ընկնում իր պարզությամբ[1], որն պայմանավորված է մի շարք գործողններով՝
- Ծավալուն, հասկանալի շարադրված, կիրառելի օրինակներով փաստաթղթեր, ինչպես նաև մեծ համայնք և Wiki,[2][1]
- Բազմաթիվ վիդեոդասեր, որոնք կարելի է գտնել ինչպես պաշտոնական, այնպես էլ այլ կայքերում,[3][4][5][6]
- Ֆրեյմվորկն ազատություն է տալիս ծրագրավորողին՝ չսահմանելով որևէ կառուցվածքային սահմանումներ կամ կանոններ,
- Անհրաժեշտություն չկա սովորել օգտագործել հրամանի տողով կառավարվող կոդի գեներատորը,
- CodeIgniter-ն աշխատում է գործնականում բոլոր PHP 5.1 և ավելի տարբերակն ապահովող հոսթինգներում,
- CodeIgniter-ն համարվում է արագ և ոչ շատ ռեսուրսներ պահանջող ֆրեյմվորկներից մեկը,[7][2]
- Փոքր ծավալը,[2] (2.1.1 տարբերակն ամբողջությամբ զբաղեցնում է ընդամենը 2.2 ՄԲ ծավալ)
- Ֆրեյմվորկն թույլ է տալիս հրաժարվել մոդելներից (չնայած, որ դա չի ողջունվում)
- CodeIgniter-ի փաստաթղթերում ողջունվում են «մեծ» կառավարկիչները և «փոքր» մոդելները։ Վավերացումն ու արտաքին բիզնես-տրամաբանությունը հիմնականում կատարվում են կառավարչում։ Չնայած դրան, ֆրեյմվորկն ծրագրավորողին ազատություն է տալիս մշակման մեթոդն ընտրելու հարցում։
Հնարավորությունները[խմբագրել]
- MySQL, PostgreSQL, MSSQL, SQLite, Oracle տվյալների բազաների աջակցություն,
- Պսեվդո-ActiveRecord-ի աջակցություն, որն, մեծ մասամբ, կրկնում է SQL լեզվի շարահյուսությունը,
- Հեշտ ընդլայնվող համակարգ՝ արտաքին գրադարանների օգտագործման, ինչպես նաև արդեն գոյություն ունեցողների ընդլայման ու վերագրման հնարավորության շնորհիվ,
- Ինչպես սեգմենտավորված Մարդուն հասկանալի URL-ներ, այնպես էլ պարամետրերի փոխանցմամբ սովորական URL-ների աջակցություն,
- Ֆրեյմվորկն ունի բազմաթիվ ներկառուցված գրադարաններ, որոնք թույլ են տալիս աշխատել ֆայլերի, տվյալների բազաների, սեսիաների, պատկերների հետ, ուղարկել էլեկտրոնային նամակների, վավերացնել ֆորմաները և այլն,
- Ունի SQL-հարցումների և գեներացվող HTML-երի քեշավորման հնարավորություն։
- 2011 թվականին հայտնվեց Sparks անվանումով փաթեթների կառավարիչ, որն թույլ է տալիս հեշտությամբ տեղադրել արտաքին գրադարաններն հրամանի տողի օգնությամբ,
- HMVC կառուցվածքի աջակցություն (հավելվածների շնորհիվ)
- Չնայալ ստանդարտ փաթեթում ORM-ի բացակայությանը, ֆրեյմվորկի ելատեքստային կոդի փոքրիկ փոփոխությունից հետո հնարավոր է օգտագործել PHP ActiveRecord, Doctrine, Propel և այլ ORM-ներ
Կոդի օրինակներ[խմբագրել]
Active Record[խմբագրել]
Ընտրել բոլորը աղյուսակից[խմբագրել]
$this->db->get('table_name');
Համարժեք կոդը SQL-ում՝
SELECT * FROM `table_name`
JOIN և LIMIT օպերատորներով օրինակ[խմբագրել]
public function getData($id = 0, $offset = 0, $limit = 30) { $result = $this->db->select('table1.id, table2.name') ->from('table1') ->join('table2', 'table2.id=table1.id', 'left'); if ($id) return $result->where('table1.id', (int)$id)->limit(1)->get()->row(); return $result->limit($limit, $offset)->get()->result(); }
Դեպք 1 (երբ $id = 0)
Տվյալներ՝ $id = 0, $offset= 10, $limit = 30
Ելքի SQL-ը
SELECT table1.id, table2.name FROM table1 LEFT JOIN table2 ON table2.id = table1.id LIMIT 10, 30
Ֆունկցիան վերադարձնում է օբյեկտների զանգված (db->result())
Դեպք 2 ($id-ն զրոյից տարբեր է)
Տվյակներ՝ $id = 5, $offset = 0, $limit = 30
Ելքի SQL-ը
SELECT table1.id, table2.name FROM table1 LEFT JOIN table2 ON table2.id = table1.id WHERE table1.id = 5 LIMIT 1
Ֆունկցիան վերադարձնում է մեկ օբյեկտ (db->row())
Քննադատությունները[խմբագրել]
- Հաճախ CodeIgniter-ը քննադատում են օբյեկտային կողմորոշմամբ ծրագրավորման վերաբերյալ ոչ սովորական տեսակետի համար։
- CakePHP-ի որոշ կողմնակիցներ կարծում են, որ CodeIgniter-ի կողմից ծրագրավորողին տրված ազատությունը ինչ-որ տեղ խրախուսում է անփույթ ծրագրավորման ոճը։
- CodeIgniter-ի մոդելները լռելյան չեն աջակցում ORM-ը։
- Տվյալների բազաների հետ աշխատանքի դասը վատ մտածված կառուցվածքի պատճառով գործնականում հնարավոր չէ ընդլայնել կամ փոփոխել։
- Չնայած նրան, որ CodeIgniter-ն օգտագործվում է մեծ թվով մասնագիտացված ծրագրավորողների և վեբ-ստուդիաների կողմից, շատերը գտնոմ են, որ այն միայն նորեկների համար է։
CodeIgniter-ի ազդեցությունը[խմբագրել]
CodeIgniter-ը հիմք է հանդիսացել այնպիսի ֆրեյմվորկների համար, ինչպիսիք են Kohana-ն և Rain Framework-ը, ինչպես նաև CodeIgniter-ի որոշ մտքեր օգտագործվում են Fuel PHP[8] և CodeLighter[9] ֆրեյմվորկներում։
Kohana-ն սկզբում ընդամենը CodeIgniter-ի մի ճյուղ էր։ Այն ստեղծվել էր PHP5-ի բոլոր հնարավորությունների օգտագործման և, մինչնույն ժամանակ, CodeIginter-ի բարձր արտադրողականության պահպանման նպատակով։ Այն տարբերվում էր CodeIgniter-ից նրանով, որ չէր աջակցում PHP4-ը և ուներ որոշ լրացուցիչ գրադարաններ (ORM, Auth և այլն)։ Եթե Kohana-ի 2.x տարբերակում դեռևս ինչ-որ բան մնացել էր CodeIgniter-ից, ապա նոր տարբերակներում (3.x) այն CodeIgniter-ի ոչ մի ընդհանուր բան չունի, բացի պատմությունից։
CodeIgniter-ով են աշխատում մի շարք CMS-ներ՝ Fuel CMS-ը[10], MaxSite CMS-ը[11], Cogear-ը[12], PyroCMS-ը[13] և այլն։
Հղումը[խմբագրել]
- codeigniter.com(անգլերեն) — Պաշտոնական կայքը
- Ֆորումը(անգլերեն)
- Wiki-բաժինը(անգլերեն)
- Sparks(անգլերեն) — Sparks փաթեթների կառավարչի կայքը
- philsturgeon.co.uk(անգլերեն) — Ֆիլ Սթարջենի (Phil Sturgeon)՝ ֆրեյմվորկի ակտիվ մշակողներից մեկի բլոգը
CodeIgniter-ն օգտագործող նախագծեր[խմբագրել]
- tranquillpoet.com(անգլերեն) — IDE, նախատեսված «պոետների» համար։ Ելատեքստը տեղադրված է GitHub-ում
- Maxsite CMS
- ImageCMS — ինտերնետ-խանութների և կայքերի համար նախատեսված CMS
- Project Bubble — նախագծերի կառավարման համակարգ(անգլերեն)
- PyroCMS — ունիվերսալ մոդուլային CMS(անգլերեն)
Տես նաև[խմբագրել]
Ծանոթագրություններ[խմբագրել]
- ↑ 1,0 1,1 «CodeIgniter vs. CakePHP»։ Արխիվացված օրիգինալից 2012-02-29-ին։ http://www.webcitation.org/65oNJ006c։(անգլերեն)
- ↑ 2,0 2,1 2,2 «CodeIgniter vs Symfony»։ Արխիվացված օրիգինալից 2012-02-29-ին։ http://www.webcitation.org/65oNKBxFf։(անգլերեն)
- ↑ «CodeIgniter Video Tutorials»։ Արխիվացված օրիգինալից 2012-02-29-ին։ http://www.webcitation.org/65oNLP4Pj։(անգլերեն)
- ↑ «CodeIgniter Video Tutorials By Community»։ Արխիվացված օրիգինալից 2012-02-29-ին։ http://www.webcitation.org/65oNM0Prj։(անգլերեն)
- ↑ «CodeIgniter From Scratch»։ Արխիվացված օրիգինալից 2012-02-29-ին։ http://www.webcitation.org/65oNMgYU3։(անգլերեն)
- ↑ «Easy Development With CodeIgniter»։ Արխիվացված օրիգինալից 2012-02-29-ին։ http://www.webcitation.org/65oNNlH9T։(անգլերեն)
- ↑ «Benchmark update: Cake vs. CodeIgniter vs. Kohana»։ Pr0digy.com։ 2008-09-03։ Արխիվացված օրիգինալից 2012-02-29-ին։ http://www.webcitation.org/65oNOo2JB։ Վերցված է 2009-07-24։(անգլերեն)
- ↑ FUEL — A simple, flexible, community driven PHP5.3 framework
- ↑ codelighter Codeigniter light! Simple, small and lightweight php5 codeigniter-like framework
- ↑ FUEL CMS : A Rapid Development CodeIgniter CMS
- ↑ Maxsite CMS-ի պաշտոնական կայքը
- ↑ cogear — կայքի կառավարման համակարգ, անվճար cms սոցիալական ցանցի համար
- ↑ PyroCMS — The modular open-source CodeIgniter CMS
|
|
|
|---|---|
| Մարդիկ | Էնդի Գութմանս • Ռասմուս Լերդորֆ • Զեև Սուրասկի |
| Ռեսուրսներ | Zend Engine • Գրադարաններ • PEAR • Խմբագրիչներ • Արագացուցիչ • PHP արտոնագիր |
| Կոմպիլյատորներ | HipHop • Quercus • Project Zero • Phalanger • Parrot |
| Ֆրեյմվորկներ | AppFlower • CakePHP • CodeIgniter • Դրուփալ • FuelPHP • Horde • Joomla! • Lithium • Midgard • MODx • Qcodo • Seagull • SilverStripe • Symfony • TYPO3 • Xaraya • Yii • Zend Framework • Zeta Components |
| Փորձարկում | PHPUnit • PHP Unit Testing Framework • SimpleTest |
| ORM | Propel • Doctrine |
| IDE | AppFlower • Eclipse PDT • PhpStorm • NetBeans • RadPHP • PHP DevelStudio • PHPEdit • Zend Studio |
| Կոմպիլյատոր | Phalanger |
| Widget toolkit | wxPHP • PHP-GTK • PHP-Qt |