ßæÏ ÅÛäíÊÑ CodeIgniter ÅØÇÑ Úãá ãÝÊæÍ ÇáãÕÏÑ ÈáÛÉ Èí ÅÊÔ Èí PHP
ÅØÇÑ Úãá ãÝÊæÍ ÇáãÕÏÑ¡ íÓÊÚãá Ýí ÈäÇÁ ÊØÈíÞÇÊ ÇáæíÈ ÈáÛÉ Èí ÅÊÔ Èí
ßæÏ ÅÛäíÊÑ þ åæ ÅØÇÑ Úãá ãÝÊæÍ ÇáãÕÏÑ¡ íÓÊÚãá Ýí ÈäÇÁ ÊØÈíÞÇÊ ÇáæíÈ ÈáÛÉ Èí ÅÊÔ Èí.
Êã ÅÕÏÇÑ Ãæá äÓÎÉ ÈÊÇÑíÎ 26 ÝÈÑÇíÑ 2006¡ ÃãÇ ÂÎÑ ÅÕÏÇÑ ßÇä áäÓÎÉ 3.1.5 ÈÊÇÑíÎ 19 íæäíæ 2016.
ãÇ åæ CodeIgniter ¿
åæ ÇØÇÑ Úãá ãÝÊæÍ ÇáãÕÏÑ íÚãá ÊÍÊ ÈíÆå PHP áÊØæíÑ ÊØÈíÞÇÊ æíÈ ÏíäÇãíßíÉ ÐÇÊ ßÝÇÁå ÚÇáíå æÝí äÝÓ ÇáæÞÊ ÈÇÞá ãÌåæÏ ææÞÊ ããßä Úä ØÑíÞ ÇÓÊÎÏÇã ÇáãßÊÈÇÊ æÇáÎáÇíÇ ÇáÌÇåÒå ÇáãÖãäå Öãä ÇØÇÑ ÇáÚãá.
ÊÊÖãä Êáß ÇáãßÊÈÇÊ ÇáÚÏíÏ ãä ÇáÇÌÑÇÁÇÊ ÇáÌÇåÒå ááÊÚÇãá ãÚ ßÇÝÉ ÇÌÒÇÁ ÇáãÔÑæÚ ãËá ÚãáíÇÊ ÇáÇÊÕÇá æÇáÊÚÇãá ãÚ ÞæÇÚÏ ÇáÈíÇäÇÊ, æÊÍæíáÇÊ ÇáÑæÇÈØ, æãßÊÈÇÊ ÎÇÕå ÈÊØÈíÞÇÊ ÌÇÝÇ ÓßÑÈÊ æÛíÑåÇ. ããÇ íÖãä áß ÇäÌÇÒ ÇáÚÏíÏ ãä ÇáãåÇã ÇáãÚÞÏå Ýí æÞÊ ÞÕíÑ æÈÏæä ÌåÏ.
ãÇ åí ãÒÇíÇ ÇáÚãá ÈÇÓÊÎÏÇã CodeIgniter ¿
- ÊæÝíÑ ÇáæÞÊ ááãÈÑãÌ ÇËäÇÁ ÞíÇãå ÈÊØæíÑ Çí ÊØÈíÞ.
- Óåæáå æãÑæäå Ýí ßÊÇÈÉ ÇáßæÏ ÇËäÇÁ ÇáÈÑãÌå äÙÑÇ áÊæÝÑ ÇáãßÊÈÇÊ æÇáÇÌÑÇÁÇÊ ÇáÌÇåÒå
- ÊäÙíã ãáÝÇÊ æãÌáÏÇÊ, æÇßæÇÏ ÇáãæÞÚ ÈÔßá ÑÇÆÚ ããÇ íÓåá Úáíß ãÊÇÈÚÉ ÇáãÔÑæÚ ÚäÏ ÇÚÇÏÉ ÇáÚãá Ýíå ÈÚÏ æÞÊ.
- íÚÊãÏ Úáì ÇÓÇáíÈ OOP Ýí ÇáÚãá.
ßíÝ íÚãá CodeIgniter
CodeIgniter ãÈäí Úáí ãÝåæã ÇáÜ MVC (
Models -
Views –
Controllers) æáßá ÌÒÁ æÙíÝå :
- Models
åí ÇáØÈÞå ÇáãÓÆæáå Úä ÇáÊÚÇãá ãÚ ÞæÇÚÏ ÇáÈíÇäÇÊ - Views
åí ÇáØÈÞå ÇáÊí ÊãËá æÇÌåÉ ÇáÊØÈíÞ æåæ ÇáÌÒÁ ÇáãÑÆí ãä ÇáÊØÈíÞ æÇáÐí íÙåÑ ááãÓÊÎÏã
æíÊÖãä Ýí ÇáÚÇÏå ÇßæÇÏ ÇáÊÕãíã - Controllers
ÊãËá åÐå ÇáØÈÞå ÍáÞÉ ÇáæÕá ÇáÊí ÊÑÈØ ãÇ Èíä ØÈÞÉ ÇáÈíÇäÇÊ (Models) æØÈÞÉ ÇáæÇÌåå (Views)
CodeIgniter åæ ÅØÇÑ ÊØÈíÞ æíÈ ãä ÃÌá PHP. Åäå íãßøä ÇáãØæÑíä ãä ÈäÇÁ ÊØÈíÞÇÊ ÇáæíÈ ÈÔßá ÃÓÑÚ¡ æíÞÏã ÇáÚÏíÏ ãä ãßÊÈÇÊ ÇáÊÚáíãÇÊ ÇáÈÑãÌíÉ æÇáãÓÇÚÏÇÊ ÇáãÝíÏÉ ÇáÊí ÊÓÑÚ ãä ÇáãåÇã ÇáÔÇÞÉ Ýí PHP. íÚÊãÏ CodeIgniter Úáì ÊÕãíã ãÚíÇÑíº ããÇ íÚäí Ãäå íãßäß ÊäÝíÐ ãßÊÈÇÊ ãÍÏÏÉ ÍÓÈ ÊÞÏíÑß - ããÇ íÒíÏ ãä ÓÑÚÉ ÇáÅØÇÑ. ÓíÍÇæá åÐÇ ÇáÈÑäÇãÌ ÇáÊÚáíãí ÅÙåÇÑ ÃÓÇÓíÇÊ ÅÚÏÇÏ ÅØÇÑ ÇáÚãá¡ ÈãÇ Ýí Ðáß ßíÝíÉ ÅäÔÇÁ ÊØÈíÞ ÚÇáãí ãÑÍÈ íÓÊÎÏã äåÌ MVC.
áãÇÐÇ ÇáÇØÇÑ¿
ÊÓãÍ ÇáÃØÑ ááÈäíÉ Ýí ÊØæíÑ ÇáÊØÈíÞÇÊ ãä ÎáÇá ÊæÝíÑ ÝÆÇÊ ææÙÇÆÝ ÞÇÈáÉ áÅÚÇÏÉ ÇáÇÓÊÎÏÇã æÇáÊí íãßä Ãä ÊÞáá ãä æÞÊ ÇáÊØæíÑ ÈÔßá ãáÍæÙ. ÈÚÖ ÇáÌæÇäÈ ÇáÓáÈíÉ ááÃØÑ åí ÃäåÇ ÊæÝÑ ÝÆÇÊ ÛíÑ ãÑÛæÈ ÝíåÇ¡ ããÇ íÖíÝ ÇäÊÝÇÎ Ýí ÇáßæÏ æ íÌÚá ÇáÊØÈíÞ ÃßËÑ ÕÚæÈÉ Ýí ÇáÊäÞá.
íÚÏ CodeIgniter ÅØÇÑðÇ ÎÝíÝðÇ¡ æÚÇáí ÇáÃÏÇÁ. Ýí Ííä¡ Ãäå ãËÇáí ááãÈÊÏÆíä (ÈÓÈÈ
ãäÍäì ÇáÊÚáã ÇáÕÛíÑ)¡ ßãÇ Ãäå ãËÇáí áÊØÈíÞÇÊ ÇáæíÈ ÇáßÈíÑÉ æÇáãÊØáÈÉ. Êã ÊØæíÑ CodeIgniter ÈæÇÓØÉ EllisLab æáÏíå ÊæËíÞ ßÇãá¡ æÓåá ÇáÝåã.
ÊæËíÞ ÝíãÇ íáí ÞÇÆãÉ ÈÃÓÈÇÈ ãÇ íÌÚá CodeIgniter ÅØÇÑðÇ ÐßíðÇ ááÇÓÊÎÏÇã¿ÈÕãÉ ÕÛíÑÉ ãÚ ÃÏÇÁ ÇÓÊËäÇÆí
- äåÌ MVC ááÊØæíÑ (Úáì ÇáÑÛã ãä Ãäå íÞæã Úáì Ôßá ãÝßß ááÛÇíÉ ããÇ íÓãÍ ÈÇáãÑæäÉ)
- íæáÏ ÚäÇæíä ÇáãæÇÞÚ æÏíÉ æÓåáÉ áãÍÑßÇÊ ÇáÈÍË
- ÞÇÈá ááÊæÓÚ ÈÓåæáÉ
- íÚãá Úáì ßá ãä (PHP 4 (4.3.+2+ æ 5
- ÏÚã áãÚÙã ÞæÇÚÏ ÇáÈíÇäÇÊ ÇáÑÆíÓíÉ ÈãÇ Ýí ÐáßMySQL (4.1+) ¡MySQLi ¡ MS SQL ¡Postgres ¡Oracle ¡SQLite¡
æ ODBC. - ÃãÇä ÇáÊØÈíÞ åæ ãÑßÒ ÇáäÔÇØ
- ÚãáíÇÊ ÇáÊÎÒíä ÇáãÄÞÊ ÓåáÉ
- åäÇß ÇáÚÏíÏ ãä ÇáãßÊÈÇÊ æÇáãÓÇÚÏÇÊ áãÓÇÚÏÊß Ýí ÇáÚãáíÇÊ ÇáãÚÞÏÉ ãËá ÇáÈÑíÏ ÇáÅáßÊÑæäí¡ æãÚÇáÌÉ ÇáÕæÑ¡
ÇáÊÍÞÞ ãä ÕÍÉ ÇáäãæÐÌ¡ æÊÍãíá ÇáãáÝÇÊ¡ æÇáÌáÓÇÊ¡ æÇáÊØÈíÞÇÊ ãÊÚÏÏÉ ÇááÛÇÊ æÅäÔÇÁ apis ãä ÃÌá ÊØÈíÞß - íÊã ÊÍãíá ãÚÙã ÇáãßÊÈÇÊ ÚäÏ ÇáÍÇÌÉ ÝÞØ ããÇ íÄÏí Åáì ÊÞáíÕ ÇáãæÇÑÏ ÇááÇÒãÉ
ÈÇáäÓÈÉ ááãÈÊÏÆíä¡ MVC åí ÇáÇÍÑÝ ÇáÃæáì ãä ÇáßáãÇÊ ÇáãæÏíá¡ ÇáÚÑÖ¡ ÃÏÇÉ ÇáÊÍßã. æåí äãØ ÈÑãÌÉ íÓÊÎÏã Ýí ÊØæíÑ
ÊØÈíÞÇÊ ÇáæíÈ. åÐÇ ÇáäãØ íÚÒá æÇÌåÉ ÇáãÓÊÎÏã æÈÑÇãÌ ÇáÎáÝíÉ (Ãí ÊÊÝÇÚá ÞÇÚÏÉ ÇáÈíÇäÇÊ ãä ÈÚÖåÇ ÇáÈÚÖ. ÊØÈíÞ
äÇÌÍ áåÐÇ íÊíÍ ááãØæÑíä ÊÚÏíá æÇÌåÉ ÇáãÓÊÎÏã ÇáÎÇÕÉ Èåã Ãæ ÈÑÇãÌ ÇáÎáÝíÉ Ïæä ÇáÊÃËíÑ
Úáì ÇáÃãæÑ ÇáÃÎÑì. íÒíÏ MVC ÃíÖðÇ ãä ãÑæäÉ ÇáÊØÈíÞ ãä ÎáÇá ÇáÞÏÑÉ Úáì ÅÚÇÏÉ ÇÓÊÎÏÇã ÇáäãÇÐÌ Ãæ ÇáãÔÇåÏÇÊ
ãÑÉ ÃÎÑì). ÝíãÇ íáí æÕÝ á MVC.
- ÇáäãæÐÌ: íÊÚÇãá ÇáäãæÐÌ ãÚ ÇáÈíÇäÇÊ ÇáÎÇã æÊÝÇÚá ÞÇÚÏÉ ÇáÈíÇäÇÊ æÓíÍÊæí Úáì æÙÇÆÝ
ãËá ÅÖÇÝÉ ÓÌáÇÊ Åáì ÞÇÚÏÉ ÈíÇäÇÊ Ãæ ÊÍÏíÏ ÓÌáÇÊ ÞÇÚÏÉ ÈíÇäÇÊ ãÍÏÏÉ. Ýí äãæÐÌ CI
íßæä Çáãßæä ÛíÑ ãØáæÈ æíãßä ÊÖãíäå Ýí æÍÏÉ ÇáÊÍßã. - ÇáÚÑÖ: íÊÚÇãá ÇáÚÑÖ ãÚ ÚÑÖ ÚäÇÕÑ ÇáÊÍßã Ýí ÇáÈíÇäÇÊ ææÇÌåÉ ÇáãÓÊÎÏã ãÚ ÇáãÓÊÎÏã.
Ýí CI ÞÏ íßæä ÇáÚÑÖ ÕÝÍÉ æíÈ Ãæ ãæÌÒ RSS Ãæ ÈíÇäÇÊ ajax Ãæ Ãí "ÕÝÍÉ" ÃÎÑì. - æÍÏÉ ÇáÊÍßã: ÊÊÕÑÝ æÍÏÉ ÇáÊÍßã Úáì ÃäåÇ Ýí ÇáãäÊÕÝ Èíä ÇáÚÑÖ æÇáäãæÐÌ¡ æßãÇ íæÍí ÇáÇÓã¡
æÍÏÉ ÇáÊÍßã åí ÃíÖÇ ãßÇä áÊÍãíá ÇáãßÊÈÇÊ æÇáãÓÇÚÏÇÊ. Ýí CI¡ æÍÏÉ ÇáÊÍßã åí ÃíÖÇ ãßÇä áÊÍãíá ÇáãßÊÈÇÊ æÇáãÓÇÚÏÇÊ.
ãËÇá áäåÌ MVC Óíßæä ãä ÎáÇá äãæÐÌ ÇáÇÊÕÇá.
- íÊÝÇÚá ÇáãÓÊÎÏã ãÚ ØÑíÞÉ ÇáÚÑÖ Úä ØÑíÞ ãáÁ äãæÐÌ æÅÑÓÇáå.
- íÊáÞì ÌåÇÒ ÇáÊÍßã ÈíÇäÇÊ POST ãä ÇáäãæÐÌ¡ íÑÓá ÌåÇÒ ÇáÊÍßã åÐå ÇáÈíÇäÇÊ Åáì ÇáäãæÐÌ
ÇáÊí íÊã ÊÍÏíËåÇ Ýí ÞÇÚÏÉ ÇáÈíÇäÇÊ. - Ëã íÑÓá ÇáäãæÐÌ äÊíÌÉ ÞÇÚÏÉ ÇáÈíÇäÇÊ Åáì æÍÏÉ ÇáÊÍßã.
- íÊã ÊÍÏíË åÐå ÇáäÊíÌÉ Ýí ÇáÚÑÖ æÅÙåÇÑåÇ ááãÓÊÎÏã.
ÞÏ íÈÏæ åÐÇ Úãá ßËíÑ íÊæÌÈ ÇáÞíÇã Èå. áßä¡ ÕÏÞäí¡ ÚäÏãÇ ÊÚãá ÈÇÓÊÎÏÇã ÊØÈíÞ ßÈíÑ¡ ÝÅä ÇáÞÏÑÉ Úáì ÅÚÇÏÉ ÇÓÊÎÏÇã ÇáäãÇÐÌ Ãæ ÇáÚÑæÖ ÊæÝÑ ÞÏÑðÇ ßÈíÑðÇ ãä ÇáæÞÊ.
ÇáÎØæÉ 1: ÊäÒíá CodeIgniter
ÓÊÍÊÇÌ Åáì ÇáÈÏÁ Ýí ÊäÒíá CodeIgniter æÊÍãíáå Åáì ÎÇÏãß. æÌå ãÊÕÝÍß
Åáì
http://www.codeigniter.com/ æ
ÇäÞÑ Úáì ÒÑ ÇáÊäÒíá ÇáßÈíÑ. Ýí åÐÇ ÇáÈÑäÇãÌ ÇáÊÚáíãí äÓÊÎÏã ÇáÅÕÏÇÑ 1.70.
ÇáÎØæÉ 2: ÊËÈíÊ æÇÓÊßÔÇÝ CodeIgniter
ÈãÌÑÏ ÊäÒíá CodeIgniter¡ ßá ãÇ Úáíß ÝÚáå åæ Ýß ÖÛØå¡ æÅÚÇÏÉ ÊÓãíÉ ÇáãÌáÏ "CodeIgniter_1.7.0"
ÅãÇ ÈÇÓã ÇáÊØÈíÞ Ãæ¡ Ýí åÐå ÇáÍÇáÉ¡ "CI" æÊÍãíáå Åáì ÎÇÏã PHP æ MySQL.
ÇáÂä ÈÚÏ Ãä ÃÕÈÍ Úáì ÇáÎÇÏã ÇáÎÇÕ Èß¡ ÓÃÔÑÍ ãÇ åí ßá ÇáãÌáÏÇÊ æÇáãáÝÇÊ ãä ÃÌáå:
- íÎÒä ãÌáÏ ÇáäÙÇã ÌãíÚ ÇáãáÝÇÊ ÇáÊí ÊÌÚá CI ÊÚãá.
- íÊØÇÈÞ ãÌáÏ ÇáÊØÈíÞ ÊÞÑíÈðÇ ãÚ ãÍÊæíÇÊ ãÌáÏ ÇáäÙÇã
æáåÐÇ ÝÅä ÇáãÓÊÎÏã íãßä Ãä íßæä áÏíå ãáÝÇÊ ÎÇÕÉ ÈåÐÇ ÇáÊØÈíÞ¡ Úáì ÓÈíá ÇáãËÇá ÅÐÇ
ÃÑÇÏ ÇáãÓÊÎÏã ÝÞØ ÊÍãíá ãÓÇÚÏ Ýí ÊØÈíÞ æÇÍÏ ÝÅäå íÞæã ÈæÖÚå Ýí ãÌáÏ ÇáäÙÇã / ÇáÊØÈíÞ / ãÓÇÚÏÇÊ
ÈÏáÇ ãä ãÌáÏ ÇáäÙÇã / ãÓÇÚÏÇÊ.
- íÎÒä ãÌáÏ ÇáÊåíÆÉ ÌãíÚ ãáÝÇÊ ÇáÊåíÆÉ ÐÇÊ ÇáÕáÉ ÈÇáÊØÈíÞ. ÇáÊí
ÊÊÖãä ãÚáæãÇÊ Íæá ãÇåíÉ ÇáãßÊÈÇÊ ÇáÊí íÌÈ Ãä íÞæã ÇáÊØÈíÞ ÈÊÍãíáåÇ æÊÝÇÕíá ÞÇÚÏÉ ÇáÈíÇäÇÊ. - íÎÒä ãÌáÏ æÍÏÇÊ ÊÍßã ßÇÝÉ æÍÏÇÊ ÇáÊÍßã ááÊØÈíÞ.
- íÎÒä ãÌáÏ ÇáÃÎØÇÁ ßÇÝÉ ÕÝÍÇÊ ÎØÃ ÇáÞÇáÈ ááÊØÈíÞ. ÚäÏãÇ
íÍÏË ÎØÃ íÊã ÅäÔÇÁ ÕÝÍÉ ÇáÎØÃ ãä ÃÍÏ åÐå ÇáÞæÇáÈ. - íÎÒä ãÌáÏ ÇáãÓÇÚÏÇÊ ÌãíÚ ÇáãÓÇÚÏÇÊ ÇáãÎÕÕÉ áÊØÈíÞß.
- ãÌáÏ ÇáÎØÇÝÇÊ åæ ÇáÎØÇÝÇÊ ÇáÊí ÊÚãá Úáì ÊÚÏíá æÙíÝÉ ãáÝÇÊ CI ÇáÃÓÇÓíÉ¡
íÌÈ ÇÓÊÎÏÇã ÇáÎØÇÝÇÊ ÝÞØ ãä ÞÈá ÇáãÓÊÎÏãíä ÇáãÊÞÏãíä áÜ CI - íÎÒä ãÌáÏ ÇááÛÉ ÎØæØðÇ äÕíÉ íãßä ÊÍãíáåÇ ãä ÎáÇá ãßÊÈÉ ÇááÛÉ
áÅäÔÇÁ ãæÇÞÚ ãÊÚÏÏÉ ÇááÛÇÊ. - íÎÒä ãÌáÏ ÇáãßÊÈÇÊ ÌãíÚ ÇáãßÊÈÇÊ ÇáÎÇÕÉ ÈÇáÊØÈíÞ ÇáÎÇÕ Èß.
- íÎÒä ãÌáÏ ÇáäãÇÐÌ ÌãíÚ äãÇÐÌ ÇáÊØÈíÞ.
- íÎÒä ãÌáÏ ÇáÚÑÖ ÌãíÚ ØÑÞ ÇáÚÑÖ ááÊØÈíÞ.
- íÎÒä ÇáãÌáÏ ÇáãÄÞÊ ßÇÝÉ ÐæÇßÑ ÇáÊÎÒíä ÇáãÄÞÊ ÇáÊí Êã ÅäÔÇÄåÇ ÈæÇÓØÉ ãßÊÈÉ ÇáÊÎÒíä ÇáãÄÞÊ.
- íÎÒä ÇáãÌáÏ codeigniter ßá ÇáÚãáíÇÊ ÇáÏÇÎáíÉ ÇáÊí ÊÌÚá CI ÊÚãá.
- íÎÒä ãÌáÏ ÞÇÚÏÉ ÇáÈíÇäÇÊ ßá ÈÑÇãÌ ÊÔÛíá ÞÇÚÏÉ ÇáÈíÇäÇÊ æÇáÝÆÉ ÇáÊí Êãßäß ãä
ÇáÇÊÕÇá ÈÞÇÚÏÉ ÇáÈíÇäÇÊ. - íÎÒä ãÌáÏ ÇáÎØæØ ÌãíÚ ÇáÎØæØ ÇáÊí íãßä ÇÓÊÎÏÇãåÇ ãä ÞÈá ãßÊÈÉ ãÚÇáÌÉ ÇáÕæÑ.
- íÎÒä ãÌáÏ ÇáãÓÇÚÏÇÊ ÌãíÚ ÇáãÓÇÚÏÇÊ ÇáÃÓÇÓíÉ áÜ CI æáßä íãßäß æÖÚ ÇáãÓÇÚÏÇÊ ÇáÊÇÈÚÉ
åäÇ æÇáÊí íãßä ÇáæÕæá ÅáíåÇ ãä ÞÈá ÌãíÚ ÇáÊØÈíÞÇÊ ÇáÎÇÕÉ Èß. - íÞæã ãÌáÏ ÇááÛÇÊ ÈÊÎÒíä ÌãíÚ ãáÝÇÊ áÛÉ CI ÇáÃÓÇÓíÉ ÇáÊí ÊÓÊÎÏã ãßÊÈÇÊåÇ æÇáãÓÇÚÏÇÊ.
ÇÓÊÎÏÇã. íãßäß ÃíÖðÇ æÖÚ ãÌáÏÇÊ ÇááÛÉ ÇáÎÇÕÉ Èß æÇáÊí íãßä ÇáæÕæá ÅáíåÇ ÈæÇÓØÉ ÌãíÚ ÇáÊØÈíÞÇÊ ÇáÎÇÕÉ Èß. - íÎÒä ÇáãÌáÏ ãßÊÈÇÊ ÌãíÚ ãßÊÈÇÊ CI ÇáÃÓÇÓíÉ æáßä íãßäß æÖÚ ÇáãßÊÈÇÊ ÇáÎÇÕÉ Èß
åäÇ æÇáÊí íãßä ÇáæÕæá ÅáíåÇ ãä ÞÈá ÌãíÚ ÇáÊØÈíÞÇÊ ÇáÎÇÕÉ Èß - íÎÒä ãÌáÏ ÇáÓÌáÇÊ ÌãíÚ ÇáÓÌáÇÊ ÇáÊí Êã ÅäÔÇÄåÇ ÈæÇÓØÉ CI.
- íÎÒä ãÌáÏ ÇáãßæöøäÇÊ ÇáÅÖÇÝíÉ ÌãíÚ ÇáãßæäÇÊ ÇáÅÖÇÝíÉ ÇáÊí íãßäß ÇÓÊÎÏÇãåÇ. ÇáãßæäÇÊ ÇáÅÖÇÝíÉ ãÊØÇÈÞÉ ÊÞÑíÈðÇ
ãÚ ÇáãÓÇÚÏÇÊ¡ ÊÚÊÈÑ ÇáÅÖÇÝÇÊ æÙÇÆÝ íÞÕÏ Ãä íÔÇÑßåÇ ÇáãÌÊãÚ. - íÎÒä ãÌáÏ ÇáÓÞÇáÇÊ ÌãíÚ ÇáãáÝÇÊ ÇáÊí ÊÌÚá ÝÆÉ ÇáÓÞÇáÇÊ ÊÚãá.
ÊæÝÑ ÇáÓÞÇáÇÊ æÇÌåÉ CRUD ãÑíÍÉ ááæÕæá Åáì ÇáãÚáæãÇÊ Ýí ÞÇÚÏÉ ÇáÈíÇäÇÊ ÇáÎÇÕÉ Èß
ÃËäÇÁ ÇáÊØæíÑ.
- Ïáíá ÇáãÓÊÎÏã íÍÊæí Úáì Ïáíá ááãÓÊÎÏã ãä ÃÌá CI.
- ãáÝ index.php åæ ÇáÔíÁ ÇáÐí íÞæã Èßá ÇáÓÍÑ Ýí CI ßãÇ íÓãÍ áß ÈÊÛííÑ
ÇÓã ÇáäÙÇã æãÌáÏÇÊ ÇáÊØÈíÞ.
ÇáÎØæÉ 3: Êßæíä CodeIgniter
ÇáÍÕæá Úáì CI æÊÔÛíáå ÈÓíØ äæÚðÇ ãÇ. íÊØáÈ ãÚÙãåÇ ÊÍÑíÑ ÈÚÖ
ãáÝÇÊ ÇáÊßæíä.
ÊÍÊÇÌ Åáì ÅÚÏÇÏ CI áíÊæÌå Åáì ÚäæÇä URL ÇáÃÓÇÓí ÇáÕÍíÍ ááÊØÈíÞ. ááÞíÇã ÈÐáß¡ ÇÝÊÍ
äÙÇã / ÊØÈíÞ / Êßíá/ config.php æ
æÞã ÈÊÍÑíÑ ÚäÕÑ ãÕÝæÝÉ ÞÇÚÏÉ _url ááÊæÌå Åáì ÎÇÏãß æãÌáÏ CI.
ÇáÎØæÉ 4: ÇÎÊÈÇÑ CodeIgniter
ÓäÌÑí ÇÎÊÈÇÑðÇ ÓÑíÚðÇ áãÚÑÝÉ ãÇ ÅÐÇ ßÇä CI ÌÇåÒðÇ æíÚãá ÈÔßá ÕÍíÍ. ÇäÊÞá Åáì http: // localhost / ci /
íÌÈ Ãä ÊÑì ãÇ íáí.
ÇáÎØæÉ 5: Êßæíä CodeIgniter Cont.
ÅÐÇ ßäÊ ÌÇåÒðÇ ááÚãá¡ ÝíÌÈ Ãä ääåí ÇáÊåíÆÉ. ÈÏÃäÇ Ýí Êßæíäå ÎÕíÕðÇ áÊØÈíÞ ãÑÍÈÇð ÈÇáÚÇáã ÇáÌÏíÏ. ÅÐÇ ßäÊ ÊÑÛÈ Ýí ÇÓÊÎÏÇã ÞÇÚÏÉ ÈíÇäÇÊ ãÚ ÇáÊØÈíÞ ÇáÎÇÕ Èß¡ (æåæ ãÇ äÞæã Èå Ýí åÐÇ ÇáÈÑäÇãÌ ÇáÊÚáíãí.) ÇÝÊÍ
äÙÇã / ÊØÈíÞ / Êßæíä / database.php æÞã ÈÊÚííä ÚäÇÕÑ ÇáãÕÝæÝÉ ÇáÊÇáíÉ Åáì Þíã ÇáãÞÇÈáÉ áåÇ. åÐå ÇáÔíÝÑÉ ÊÊÕá Åáì MySQL
ÞÇÚÏÉ ÈíÇäÇÊ ÊÓãì "ãÑÍÈÇð ÈÇáÚÇáã " Úáì ãÖíÝ ãÍáí ÈÇÓã ÇáãÓÊÎÏã "ÌÐÑ"¡ æßáãÉ ÇáãÑæÑ¡ "ÌÐÑ".
1
2
3
4
5 |
$db['default']['hostname'] = "localhost";
$db['default']['username'] = "root";
$db['default']['password'] = "root";
$db['default']['database'] = "helloworld";
$db['default']['dbdriver'] = "mysql"; |
ÈÇáÅÖÇÝÉ Åáì Ðáß¡ ÈãÇ ÃääÇ ÓäÓÊÎÏã ÞÇÚÏÉ ÇáÈíÇäÇÊ ÈÚÖ ÇáÔíÁ¡ ÝÅääÇ äÑíÏ Ãä íÊã ÇáÊÍãíá ÇáÊáÞÇÆí áÐáß íÌÈ Ãä áÇ äÞæã ÈÊÍãíáåÇ
Úáì æÌå ÇáÊÍÏíÏ Ýí ßá ãÑÉ äÞæã ÈÇáÇÊÕÇá. ÇÝÊÍ
ãáÝ äÙÇã / ÊØÈíÞÇÊ / ÊåíÆÉ / autoload.php
æÞã ÈÅÖÇÝÉ "ÞÇÚÏÉ ÈíÇäÇÊ" Åáì ãÕÝæÝÉãßÊÈÇÊ ÇáÊÍãíá ÇáÊáÞÇÆí.
| 1 |
$autoload['libraries'] = array('database'); |
ÍÇáíÇð¡ Óíßæä áÏì ÅÚÏÇÏ CI æÍÏÉ ÊÍßã ÇÝÊÑÇÖíÉ ÊÓãì "welcome.php"º íãßäß ÇáÚ辄 Úáì åÐÇ Ýí ÇáãÌáÏ
äÙÇã/ÊØÈíÞÇÊ /æÍÏÇÊ ÇáÊÍßã. ÈÇáäÓÈÉ áåÐÇ ÇáÈÑäÇãÌ ÇáÊÚáíãí¡ Þã ÈÍÐÝå æÇÝÊÍ ÇáãáÝ
äÙÇã/ÊØÈíÞÇÊ /ÊåíÆÉ/ routes.php ÇáÎÇÕ Èß. Þã ÈÊÛííÑ ÚäÕÑ ÇáãÕÝæÝÉ ÇáÇÝÊÑÇÖí ááÅÔÇÑÉ Åáì æÍÏÉ ÇáÊÍßã " ãÑÍÈÇð ÈÇáÚÇáã ".
| 1 |
$route['default_controller'] = "Helloworld" |
áÏì CI ÃíÖðÇ ãáÝ ÚÑÖ áÇ äÍÊÇÌå. ÇÝÊÍ ÇáãÌáÏ
äÙÇã/ÊØÈíÞÇÊ /ÚÑÖ
æÇÍÐÝ ãáÝ
welcome_message.php.
ÇáÎØæÉ 6: ÅäÔÇÁ ÞÇÚÏÉ ÈíÇäÇÊ ãÑÍÈÇð ÈÇáÚÇáã
äÙÑðÇ áÃä åÐÇ áíÓ ÈÑäÇãÌÇð ÊÚáíãíðÇ Úáì MySQL¡ ÓÃÈÞí åÐÇ ÇáÞÓã ÞÕíÑðÇ ÞÏÑ ÇáÅãßÇä. Þã ÈÅäÔÇÁ ÞÇÚÏÉ ÈíÇäÇÊ ÊÓãì "ãÑÍÈÇð ÈÇáÚÇáã "æ
Þã ÈÊÔÛíá SQL ÇáÊÇáí ãä ÎáÇá phpMyAdmin (Ãæ Úãíá MySQL ãÔÇÈå).
01
02
03
04
05
06
07
08
09
10
11
12 |
CREATE TABLE `data` (
`id` int(11) NOT NULL auto_increment,
`title` varchar(255) NOT NULL,
`text` text NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=2 ;
INSERT INTO `data` (`id`, `title`, `text`) VALUES(1, 'Hello World!', 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla
sapien eros, lacinia eu, consectetur vel, dignissim et, massa. Praesent suscipit nunc vitae neque. Duis a ipsum. Nunc a erat. Praesent
nec libero. Phasellus lobortis, velit sed pharetra imperdiet, justo ipsum facilisis arcu, in eleifend elit nulla sit amet tellus.
Pellentesque molestie dui lacinia nulla. Sed vitae arcu at nisl sodales ultricies. Etiam mi ligula, consequat eget, elementum sed,
vulputate in, augue. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae;'); |
ÇáÎØæÉ 7: ÅäÔÇÁ äãæÐÌ ãÑÍÈÇð ÈÇáÚÇáã
ÊÚÊÈÑ ÇáäãÇÐÌ ÇÎÊíÇÑíÉ Ýí CI¡ æáßäåÇ ÊÚÊÈÑ ÃÝÖá ããÇÑÓÉ ãä ÃÌá ÇÓÊÎÏÇãåÇ. ÅäåÇ ãÌÑÏ ÝÆÇÊ PHP ÇáÊí ÊÍÊæí
ÇáæÙÇÆÝ ÇáÊí ÊÚãá ãÚ ÇáãÚáæãÇÊ ãä ÞÇÚÏÉ ÇáÈíÇäÇÊ. ÇÐåÈ
ÞÏãÇ æÇÕäÚ ãáÝ
helloworld_model.php
Ýí ãÌáÏ
ÇáäÙÇã / ÇáÊØÈíÞ / ÇáäãÇÐÌ.
Ýí åÐÇ ÇáãáÝ¡ Þã ÈÅäÔÇÁ ÝÆÉ äãæÐÌ ãÑÍÈÇð ÈÇáÚÇáã¡ æÞã ÈÅäÔÇÁ äãæÐÌ ãÑÍÈÇð ÈÇáÚÇáã æÏÇáÉ ÊÓãì ÇáÍÕæá Úáì ÇáÈíÇäÇÊ.
Ýí æÙíÝÉ ÇáÍÕæá Úáì ÇáÈíÇäÇÊ
ÓæÝ äÞæã ÈÇÓÊÎÏÇã æÙÇÆÝ ÞÇÚÏÉ ÈíÇäÇÊ ÇáÓÌá ÇáäÔØÉ ÇáÊí ÊÓÑÚ ÃÒãäÉ ÊØæíÑ ÞÇÚÏÉ ÇáÈíÇäÇÊ ÚäÏ ÇáÚãá
ãÚ CI æÞæÇÚÏ ÇáÈíÇäÇÊ. ÃÓÇÓÇ¡ Ýåí æÙÇÆÝ ãÈÓØÉ áÅäÔÇÁ ÇáÊÓÇÄáÇÊ.
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24 |
<?php
class Helloworld_model extends Model {
function Helloworld_model()
{
// Call the Model constructor
parent::Model();
}
function getData()
{
//Query the data table for every record and row
$query = $this->db->get('data');
if ($query->num_rows() > 0)
{
//show_error('Database is empty!');
}else{
return $query->result();
}
}
}
?> |
ÇáÎØæÉ 8: ÅäÔÇÁ æÍÏÉ ÊÍßã ãÑÍÈÇð ÈÇáÚÇáã
áäÞã ÈÅäÔÇÁ æÍÏÉ ÊÍßã ÓÊÙåÑ ÇáÚÑÖ¡ æÊÍãíá ÇáäãæÐÌ. ÈåÐå ÇáØÑíÞÉ¡ ÚäÏãÇ
ÊÐåÈ Åáì ÇáÚäæÇä http: //localhost/ci/index.php/helloworld/¡ ÓÊÑì ÇáÈíÇäÇÊ ãä ÞÇÚÏÉ ÇáÈíÇäÇÊ.
Ýí ÇáãÌáÏ
ÇáäÙÇã / ÇáÊØÈíÞ / æÍÏÇÊ ÇáÊÍßã¡ Þã ÈÅäÔÇÁ ãáÝ íÓãì
helloworld.php.
Ýí åÐÇ ÇáãáÝ ÇáÌÏíÏ¡ ÓääÔÆ ÝÆÉ ÊÍãá äÝÓ ÇÓã ÇáãáÝ.
ÏÇÎá åÐå ÇáÝÆÉ¡ ÊÍÊÇÌ Åáì ÅäÔÇÁ æÙíÝÉ ÊÓãì "ÇáÝåÑÓ". åÐå åí ÇáæÙíÝÉ ÇáÊí ÓíÊã
ÚÑÖåÇ ÚäÏãÇ áÇ íÊã ÊæÝíÑ ÛíÑåÇ - Úáì ÓÈíá ÇáãËÇá ÚäÏãÇ íßæä http: //localhost/ci/index.php/helloworld
ÞÏ ÊãÊ ÒíÇÑÊå. ÅÐÇ¡ Úáì ÓÈíá ÇáãËÇá¡ ÃäÔÃäÇ æÙíÝÉ ÊÓãì foo¡ íãßääÇ ÇáÚ辄 Úáì åÐÇ Úáì Ôßá http: //localhost/ci/index.php/helloworld/foo/.
ÇáÔíÁ ÇáÃÓÇÓí ÇáÐí íÌÈ ÊÐßÑå åæ ßíÝíÉ ÈäÇÁ CI áÚäÇæíä URL ÇáÎÇÕÉ ÈåǺ Úáì ÓÈíá ÇáãËÇá¡
http://host/codeignitordirectory/ind...class/function
Ýí æÙíÝÉ ÝåÑÓ ÇáÊÍßã¡ äÍÊÇÌ Åáì ÊÍãíá ÇáäãæÐÌ¡ ÇáÇÓÊÚáÇã Úä ÞÇÚÏÉ ÇáÈíÇäÇÊ¡ æÊãÑíÑ åÐå
ÇáÈíÇäÇÊ ÇáãÓÊÚáã ÚäåÇ Åáì ØÑíÞÉ ÇáÚÑÖ. áÊÍãíá Ãí ãæÇÑÏ Åáì CI Úáì ÓÈíá ÇáãËÇá¡ ÇáãßÊÈÇÊ¡
ÇáãÓÇÚÏÇÊ¡ Ãæ ØÑÞ ÇáÚÑÖ¡ Ãæ ÇáäãÇÐÌ¡ äÓÊÎÏã ÝÆÉ ÇáÊÍãíá. ÈÚÏ ÊÍãíá ÇáäãæÐÌ¡ íãßääÇ ÇáæÕæá Åáíå ãä ÎáÇá
ÇÓã äãæÐÌåÇ ææÙíÝÉ ãÚíäÉ. áÊãÑíÑ ÇáÈíÇäÇÊ Åáì ØÑíÞÉ ÇáÚÑÖ äÍÊÇÌ Åáì ÊÚííäåÇ Åáì ÚäÕÑ ãÕÝæÝÉ
Ëã ÊãÑíÑ ÇáãÕÝæÝÉ - ÇáÊí ÊÚíÏ ÅäÔÇÁ ÚäÇÕÑ ÇáãÕÝæÝÉ ßãÊÛíÑ Ýí ãáÝ ÇáÚÑÖ.
01
02
03
04
05
06
07
08
09
10
11
12
13 |
<?php
class Helloworld extends Controller{
function index()
{
$this->load->model('helloworld_model');
$data['result'] = $this->helloworld_model-><span class="sql">getData</span>();
$data['page_title'] = "CI Hello World App!";
$this->load->view('helloworld_view',$data);
}
}
?> |
ÅÐÇ ÞãäÇ ÈÒíÇÑÉ http: //localhost/ci/index.php/helloworld/ ÇáÂä¡ Ýáä íÚãẠåÐÇ áÃä ãáÝ ÇáÚÑÖ ÛíÑ ãæÌæÏ.
ÇáÎØæÉ 9: Þã ÈÅäÔÇÁ ÚÑÖ ãÑÍÈÇð ÈÇáÚÇáã
ãáÝ ÇáÚÑÖ åæ ãÇ íÑÇå ÇáãÓÊÎÏã æíÊÝÇÚá ãÚå¡ æíãßä Ãä íßæä ÌÒÁðÇ ãä ÕÝÍÉ Ãæ ÇáÕÝÍÉ ÈÃßãáåÇ. íãßäß ÊãÑíÑ ãÕÝæÝÉ ãä ÇáãÊÛíÑÇÊ Åáì ØÑíÞÉ ÇáÚÑÖ ãä ÎáÇá ÇáæÓíØÉ ÇáËÇäíÉ
ãä æÙíÝÉ äãæÐÌ ÇáÊÍãíá. áÕäÚ ØÑíÞÉ ÇáÚÑÖ ÇáÎÇÕÉ ÈÈÑäÇãÌäÇ ÇáÊÚáíãí¡ Þã ÈÅäÔÇÁ ãáÝ ÌÏíÏ íÓãì
helloworld_view.php Ýí ÇáãÌáÏ
äÙÇã/ÊØÈíÞÇÊ /ÚÑÖ . ÈÚÏ Ðáß¡ äÍÊÇÌ ÝÞØ Åáì ÅäÔÇÁ html ÇáÚÇÏí¡ ÚäÇÕÑ ÇáÑÃÓ
æ ÇáÌÓã¡ Ëã ÇáÊÑæíÓÉ æ ÝÞÑÉ ááãÚáæãÇÊ ãä ÞÇÚÏÉ ÇáÈíÇäÇÊ. áÚÑÖ ßá
ÇáÓÌáÇÊ ÇáæÇÑÏÉ ãä ÞÇÚÏÉ ÇáÈíÇäÇÊ¡ æÖÚäÇåÇ Ýí ÍáÞÉ "foreach"
æÇáÊí ÊÏæÑÚÈÑ ÌãíÚ ÇáÚäÇÕÑ.
01
02
03
04
05
06
07
08
09
10
11
12 |
<html>
<head>
<title><?=$page_title?></title>
</head>
<body>
<?php foreach($result as $row):?>
<h3><?=$row->title?></h3>
<p><?=$row->text?></p>
<br />
<?php endforeach;?>
</body>
</html> |
ÑÈãÇ áÇÍÙÊ ÃääÇ äÓÊÎÏã ÈäíÉ php ÈÏíáÉ¡ æåÐÇ íæÝÑ ØÑíÞÉ ãäÇÓÈðÉ
ÊÍÝÙ ÇáæÞÊ áßÊÇÈÉ ÇáÈíÇäÇÊ ÇáäÇÊÌÉ.
ÇáÎØæÉ 10: Ta-da æÈÚÖ ÇáÅÖÇÝÇÊ
ÚäÏ ÒíÇÑÉ "http: //localhost/ci/index.php/helloworld/"¡ ÃäÊ
íÌÈ Ãä ÊÑì ÔíÆðÇ ãÔÇÈåðÇ áåÐÇ.
áßääÇ áã ääÊå ÈÚÏ. åäÇß ÈÚÖ ÇáÃÔíÇÁ ÇáÊí íãßäß ÇáÞíÇã ÈåÇ áÊÍÓíä ÊÌÑÈÉ CodeIgniter -
ãËá ÅÒÇáÉ Ðáß ÇáÝåÑÓ index.php ÇáãÒÚÌ ãä ÚäæÇä URL. íãßäß ÅäÌÇÒ åÐå ÇáãåãÉ Úä ØÑíÞ ÅäÔÇÁ ãáÝ .htaccess Ýí ÇáãÌáÏ ÇáÌÐÑ¡ æÅÖÇÝÉ ÇáÔÝÑÉ ÇáÊÇáíÉ.
RewriteEngine on
RewriteCond $1 !^(index\.php|images|robots\.txt)
RewriteRule ^(.*)$ ci/index.php/$1 [L]
ÓÊÍÊÇÌ ÃíÖðÇ Åáì ÝÊÍ ãáÝ
config.php Ýí
äÙÇã/ÊØÈíÞÇÊ/ ÊåíÆÉ æÊÍÑíÑÚäÕÑ ãÕÝæÝÉ index_page Åáì ÓáÓáÉ ÝÇÑÛÉ.
| 1 |
$config['index_page'] = ""; |
ÂÎÑ ÎÏÚÉ ÃäíÞÉ åí ÊÔÛíá ÅãßÇäíÉ CI áÊÍáíá ÈäÇÁ ÌãáÉ PHP ÈÏíáÉ ÅÐÇ
áã íÊã ÊãßíäåÇ ãä ÞÈá ÇáÎÇÏã. ááÞíÇã ÈÐáß¡ ÇÝÊÍ ÇáãáÝ äÝÓå ßãÇ ßÇä ãä ÞÈá¡
äÙÇã/ÊØÈíÞÇÊ /ÊåíÆÉ/ config.php¡ æÞã ÈÊÚííä ÚäÕÑ ÇáãÕÝæÝÉ ÅÚÇÏÉ ßÊÇÈÉ ÚáÇãÇÊ ÞÕíÑÉ Åáì TRUE.
| 1 |
$config['rewrite_short_tags'] = TRUE; |
æÂãá Ãä íßæä ßá ÔíÁ Úáì ãÇ íÑÇã! äÊØáÚ Åáì ÑÄíÉ ÇáãÒíÏ ãä ÇáÈÑÇãÌ ÇáÊÚáíãíÉ CodeIgniter ãäí Ýí ÇáãÓÊÞÈá.
ÇáãÑÌÚ:
https://ar.wikipedia.org/wiki/%D9%83...8A%D8%AA%D8%B1
https://code.tutsplus.com/ar/tutoria...iter--net-2634
ÇáãÝÖáÇÊ