CodeIgniter

Վիքիպեդիայից՝ ազատ հանրագիտարանից
CodeIgniter
CodeIgniterLogo.png
Տեսակ վեբ ծրագրի հենք
Հեղինակ EllisLab, Inc.
Նախագծումը՝ British Columbia Institute of Technology
Գրված է՝ PHP
ՕՀ բազմապլատֆորմ
Զարգացման կարգավիճակ ակտիվ մշակվող
Արտոնագիր Open Software License, Apache License, MIT արտոնագիր և BSD արտոնագիր
Կայք codeigniter.com
Աղբյուր կոդ github.com/bcit-ci/CodeIgniter[1]

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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