CodeIgniter, PHP ծրագրավորման լեզվով գրված բաց կոդով MVC ֆրեյմվորկ, որն նախատեսված է լիարժեք վեբ-համակարգերի և հավելվածների ստեղծման համար։ Մշակվել է EllisLab ընկերության, ինչպես նաև Ռիք Էլիսի (Rick Ellis) և Փոլ Բուրդիքի (Paul Burdick) կողմից։

CodeIgniter
Изображение логотипа
Տեսակվեբ ծրագրի հենք և ազատ ծրագրային ապահովում
ՀեղինակEllisLab, Inc.
Նախագծումը՝British Columbia Institute of Technology?
Գրված է՝PHP[1]
Լույս տեսավ՝փետրվարի 28, 2006
Վերջին կայուն տարբերակ3.1.13 (մարտի 3, 2022)[2]
Զարգացման կարգավիճակակտիվ մշակվող
ԱրտոնագիրMIT արտոնագիր[3]
Կայքcodeigniter.com և codeigniter.es
Ելակոդgithub.com/bcit-ci/CodeIgniter

Պատմություն խմբագրել

Ֆրեյմվորկիի առաջին անգամ թողարկվել է 2006 թ․ փետրվարի 28-ին։ Սկսած 2011 թ․ հունվարի 28-ից, երբ թողարկվեց ֆրեյմվորկի 2.0 տարբերակը, CodeIgniter-ի մշակումն իրականացվում է երկու ճյուղով՝

  1. CodeIgniter Core — այս ճյուղը առավել մեծ ուշադրություն է դարձնում կայունության վրա, ինչի պատճառով դանդաղ է զարգանում։
  2. CodeIgniter Reactor — այս ճյուղը զարգացվում է համայնքի կողմից։ Այն զարգանում է ավելի արագ և պարունակում է ամենանոր հնարավորությունները։

Առանձնահատկությունները խմբագրել

  • CodeIgniter-ն աչքի է ընկնում իր պարզությամբ[4], որն պայմանավորված է մի շարք գործողններով՝
    • Ծավալուն, հասկանալի շարադրված, կիրառելի օրինակներով փաստաթղթեր, ինչպես նաև մեծ համայնք և Wiki[4][5],
    • Բազմաթիվ վիդեոդասեր, որոնք կարելի է գտնել ինչպես պաշտոնական, այնպես էլ այլ կայքերում[6][7][8][9],
    • Ֆրեյմվորկն ազատություն է տալիս ծրագրավորողին՝ չսահմանելով որևէ կառուցվածքային սահմանումներ կամ կանոններ,
    • Անհրաժեշտություն չկա սովորել օգտագործել հրամանի տողով կառավարվող կոդի գեներատորը,
  • CodeIgniter-ն աշխատում է գործնականում բոլոր PHP 5.1 և ավելի տարբերակն ապահովող հոսթինգներում,
  • CodeIgniter-ն համարվում է արագ և ոչ շատ ռեսուրսներ պահանջող ֆրեյմվորկներից մեկը[5][10],
  • Փոքր ծավալը[5], (2.1.1 տարբերակն ամբողջությամբ զբաղեցնում է ընդամենը 2.2 ՄԲ ծավալ)
  • Ֆրեյմվորկն թույլ է տալիս հրաժարվել մոդելներից (չնայած, որ դա չի ողջունվում)
  • CodeIgniter-ի փաստաթղթերում ողջունվում են «մեծ» կառավարկիչները և «փոքր» մոդելները։ Վավերացումն ու արտաքին բիզնես-տրամաբանությունը հիմնականում կատարվում են կառավարչում։ Չնայած դրան, ֆրեյմվորկն ծրագրավորողին ազատություն է տալիս մշակման մեթոդն ընտրելու հարցում։

Հնարավորությունները խմբագրել

  • MySQL, PostgreSQL, MSSQL, SQLite, Օրաքլ տվյալների բազաների աջակցություն,
  • Պսեվդո-ActiveRecord-ի աջակցություն, որն, մեծ մասամբ, կրկնում է SQL լեզվի շարահյուսությունը,
  • Հեշտ ընդլայնվող համակարգ՝ արտաքին գրադարանների օգտագործման, ինչպես նաև արդեն գոյություն ունեցողների ընդլայման ու վերագրման հնարավորության շնորհիվ,
  • Ինչպես սեգմենտավորված Մարդուն հասկանալի URL-ներ, այնպես էլ պարամետրերի փոխանցմամբ սովորական URL-ների աջակցություն,
  • Ֆրեյմվորկն ունի բազմաթիվ ներկառուցված գրադարաններ, որոնք թույլ են տալիս աշխատել ֆայլերի, տվյալների բազաների, սեսիաների, պատկերների հետ, ուղարկել էլեկտրոնային նամակների, վավերացնել ֆորմաները և այլն,
  • Ունի SQL-հարցումների և գեներացվող HTML-երի քեշավորման հնարավորություն։
  • 2011 թվականին հայտնվեց Sparks անվանումով փաթեթների կառավարիչ, որն թույլ է տալիս հեշտությամբ տեղադրել արտաքին գրադարաններն հրամանի տողի օգնությամբ,
  • HMVC կառուցվածքի աջակցություն (հավելվածների շնորհիվ)
  • Չնայալ ստանդարտ փաթեթում ORM-ի բացակայությանը, ֆրեյմվորկի ելատեքստային կոդի փոքրիկ փոփոխությունից հետո հնարավոր է օգտագործել PHP ActiveRecord, Doctrine, Propel և այլ ORM-ներ

Ընտրել բոլորը աղյուսակից խմբագրել

$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[11] և CodeLighter[12] ֆրեյմվորկներում։

Kohana-ն սկզբում ընդամենը CodeIgniter-ի մի ճյուղ էր։ Այն ստեղծվել էր PHP5-ի բոլոր հնարավորությունների օգտագործման և, մինչնույն ժամանակ, CodeIginter-ի բարձր արտադրողականության պահպանման նպատակով։ Այն տարբերվում էր CodeIgniter-ից նրանով, որ չէր աջակցում PHP4-ը և ուներ որոշ լրացուցիչ գրադարաններ (ORM, Auth և այլն)։ Եթե Kohana-ի 2.x տարբերակում դեռևս ինչ-որ բան մնացել էր CodeIgniter-ից, ապա նոր տարբերակներում (3.x) այն CodeIgniter-ի ոչ մի ընդհանուր բան չունի, բացի պատմությունից։

CodeIgniter-ով են աշխատում մի շարք CMS-ներ՝ Fuel CMS[13], MaxSite CMS-ը[14], Cogear[15], PyroCMS[16] և այլն։

Հղումը խմբագրել

CodeIgniter-ն օգտագործող նախագծեր խմբագրել

Տես նաև խմբագրել

Ծանոթագրություններ խմբագրել

  1. The codeigniter Open Source Project on Open Hub: Languages Page — 2006.
  2. Release 3.1.13 — 2022.
  3. https://github.com/codeigniter4/CodeIgniter4/blob/v4.0.4/license.txt
  4. 4,0 4,1 «CodeIgniter vs. CakePHP». Արխիվացված է օրիգինալից 2012 թ․ փետրվարի 29-ին. Վերցված է 2013 թ․ հունվարի 6-ին.(անգլ.)
  5. 5,0 5,1 5,2 «CodeIgniter vs Symfony». Արխիվացված օրիգինալից 2012 թ․ փետրվարի 29-ին. Վերցված է 2013 թ․ հունվարի 6-ին.(անգլ.)
  6. «CodeIgniter Video Tutorials». Արխիվացված է օրիգինալից 2012 թ․ փետրվարի 29-ին. Վերցված է 2013 թ․ հունվարի 6-ին.(անգլ.)
  7. «CodeIgniter Video Tutorials By Community». Արխիվացված է օրիգինալից 2012 թ․ փետրվարի 29-ին. Վերցված է 2013 թ․ հունվարի 6-ին.(անգլ.)
  8. «CodeIgniter From Scratch». Արխիվացված օրիգինալից 2012 թ․ փետրվարի 29-ին. Վերցված է 2013 թ․ հունվարի 6-ին.(անգլ.)
  9. «Easy Development With CodeIgniter». Արխիվացված օրիգինալից 2012 թ․ փետրվարի 29-ին. Վերցված է 2013 թ․ հունվարի 6-ին.(անգլ.)
  10. «Benchmark update: Cake vs. CodeIgniter vs. Kohana». Pr0digy.com. 2008 թ․ սեպտեմբերի 3. Արխիվացված է օրիգինալից 2012 թ․ փետրվարի 29-ին. Վերցված է 2009 թ․ հուլիսի 24-ին.(անգլ.)
  11. FUEL — A simple, flexible, community driven PHP5.3 framework
  12. codelighter Codeigniter light! Simple, small and lightweight php5 codeigniter-like framework
  13. FUEL CMS : A Rapid Development CodeIgniter CMS
  14. Maxsite CMS-ի պաշտոնական կայքը
  15. «cogear — կայքի կառավարման համակարգ, անվճար cms սոցիալական ցանցի համար». Արխիվացված է օրիգինալից 2016 թ․ ապրիլի 25-ին. Վերցված է 2013 թ․ հունվարի 6-ին.
  16. PyroCMS — The modular open-source CodeIgniter CMS