CodeIgniter

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

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

Պատմություն[խմբագրել | խմբագրել կոդը]

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

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

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

  • CodeIgniter-ն աչքի է ընկնում իր պարզությամբ[3], որն պայմանավորված է մի շարք գործողններով՝
    • Ծավալուն, հասկանալի շարադրված, կիրառելի օրինակներով փաստաթղթեր, ինչպես նաև մեծ համայնք և Wiki[3][4],
    • Բազմաթիվ վիդեոդասեր, որոնք կարելի է գտնել ինչպես պաշտոնական, այնպես էլ այլ կայքերում[5][6][7][8],
    • Ֆրեյմվորկն ազատություն է տալիս ծրագրավորողին՝ չսահմանելով որևէ կառուցվածքային սահմանումներ կամ կանոններ,
    • Անհրաժեշտություն չկա սովորել օգտագործել հրամանի տողով կառավարվող կոդի գեներատորը,
  • CodeIgniter-ն աշխատում է գործնականում բոլոր PHP 5.1 և ավելի տարբերակն ապահովող հոսթինգներում,
  • CodeIgniter-ն համարվում է արագ և ոչ շատ ռեսուրսներ պահանջող ֆրեյմվորկներից մեկը[4][9],
  • Փոքր ծավալը[4], (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[10] և CodeLighter[11] ֆրեյմվորկներում։

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

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

Հղումը[խմբագրել | խմբագրել կոդը]

  • codeigniter.com(անգլ.) — Պաշտոնական կայքը
  • Sparks Archived 2011-07-09 at the Wayback Machine.(անգլ.) — Sparks փաթեթների կառավարչի կայքը
  • philsturgeon.co.uk Archived 2012-12-24 at the Wayback Machine.(անգլ.) — Ֆիլ Սթարջենի (Phil Sturgeon)՝ ֆրեյմվորկի ակտիվ մշակողներից մեկի բլոգը

CodeIgniter-ն օգտագործող նախագծեր[խմբագրել | խմբագրել կոդը]

Տես նաև[խմբագրել | խմբագրել կոդը]

Ծանոթագրություններ[խմբագրել | խմբագրել կոդը]

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