CodeIgniter

Վիքիպեդիայից՝ ազատ հանրագիտարանից
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-ի մշակումն իրականացվում է երկու ճյուղով՝

  1. CodeIgniter Core — այս ճյուղը առավել մեծ ուշադրություն է դարձնում կայունության վրա, ինչի պատճառով դանդաղ է զարգանում։
  2. 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(անգլերեն) — Պաշտոնական կայքը
  • Sparks(անգլերեն) — Sparks փաթեթների կառավարչի կայքը
  • philsturgeon.co.uk(անգլերեն) — Ֆիլ Սթարջենի (Phil Sturgeon)՝ ֆրեյմվորկի ակտիվ մշակողներից մեկի բլոգը

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

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

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

  1. 1,0 1,1 «CodeIgniter vs. CakePHP»։ Արխիվացված օրիգինալից 2012-02-29-ին։ http://www.webcitation.org/65oNJ006c։ (անգլերեն)
  2. 2,0 2,1 2,2 «CodeIgniter vs Symfony»։ Արխիվացված օրիգինալից 2012-02-29-ին։ http://www.webcitation.org/65oNKBxFf։ (անգլերեն)
  3. «CodeIgniter Video Tutorials»։ Արխիվացված օրիգինալից 2012-02-29-ին։ http://www.webcitation.org/65oNLP4Pj։ (անգլերեն)
  4. «CodeIgniter Video Tutorials By Community»։ Արխիվացված օրիգինալից 2012-02-29-ին։ http://www.webcitation.org/65oNM0Prj։ (անգլերեն)
  5. «CodeIgniter From Scratch»։ Արխիվացված օրիգինալից 2012-02-29-ին։ http://www.webcitation.org/65oNMgYU3։ (անգլերեն)
  6. «Easy Development With CodeIgniter»։ Արխիվացված օրիգինալից 2012-02-29-ին։ http://www.webcitation.org/65oNNlH9T։ (անգլերեն)
  7. «Benchmark update: Cake vs. CodeIgniter vs. Kohana»։ Pr0digy.com։ 2008-09-03։ Արխիվացված օրիգինալից 2012-02-29-ին։ http://www.webcitation.org/65oNOo2JB։ Վերցված է 2009-07-24։ (անգլերեն)
  8. FUEL — A simple, flexible, community driven PHP5.3 framework
  9. codelighter Codeigniter light! Simple, small and lightweight php5 codeigniter-like framework
  10. FUEL CMS : A Rapid Development CodeIgniter CMS
  11. Maxsite CMS-ի պաշտոնական կայքը
  12. cogear — կայքի կառավարման համակարգ, անվճար cms սոցիալական ցանցի համար
  13. PyroCMS — The modular open-source CodeIgniter CMS