АУСистем хийцгээе. Хичээл 1

Php хэлийг ашиглан веб сайт хийх ажил шинээр эхэлж байгаа хүмүүст ойлгомж муутай санагдах нь элбэг тохиолдоно. C# NET, Visual Studio зэрэг дээд түвшингийн хэлний фреймворк ашиглан хэрэглэгчийн компьютерт суулган ажилладаг программ зохиож байсан хүмүүст веб сайт боловсруулах ажил эхлээд их төвөгтэй мэт санагдана. Учир нь Php, MySql ашиглан сайт хийхийн тулд та сервер болон хэрэглэгчийн талын бүх зүйлээ өөрөө хийх хэрэгтэй болдог. Ийм хэмжээний ажлыг кодлон веб сайт боловсруулна гэвэл мэдээжээр их хугацаа орох нь ойлгомжтой. Тэгвэл сайтыг хэрхэн хурдан боловсруулах вэ? гэсэн асуулт гарч ирдэг. Энд л Php фреймворк, Агуулгын удирдах систем буюу CMS (Content management system) гэсэн ойлголт гарч ирдэг.

Ямарч программ боловсруулах ажилд өгөгдлийн сантай ажиллах, системд нэвтрэх, тексттэй ажиллах, тохиргоонуудыг хийх гээд ижилхэн ажиллагаанууд байнга давтагдаж байдаг. Ийм ерөнхий ажиллагаануудыг хийх сангуудыг үүсгээд тэдгээрийг ашиглах боломжийг бүрдүүлсэн классуудын санг Php фреймворк гэдэг. Жишээ нь Yii, Sympony, Codeigniter, Zend гэх мэтээр олон тооны фреймворкууд бий. Эдгээрийг сайт хийх хэв гээд ойлгоход болно. Php фреймворкууд бол сайт хийх бэлдэц.

Фреймворкуудын зэрэгцээ сервертээ суулгаад шууд бэлэн сайт үүсгэх боломжтой пакетууд байдаг бөгөөд эдгээрийг Агуулгын удирдах систем буюу CMS (Content management system) гэдэг. Өргөн дэлгэрсэн АУС -үүдэд Joomla, Wordpress, Drupal зэргийг дурдаж болно.
Php хэл нээлттэй кодтой учраас фреймворк, АУ системийн аль алинг хэрэглэгч өөрийн хүссэн байдлаар өргөжүүлэх боломжтой байдаг давуу талтай.
АУС -үүд өөрийн гэсэн баазын бүтэц, хуудсыг үзүүлэх хэв /теймплейт/ зэргийг стандарт хэлбэрээр шууд ашиглах боломжийг бүрдүүлсэн байхад фреймворкууд сайтыг боловсруулах анхан шатны бэлдэц маягаар байдгаараа ялгаатай. Эндээс Фреймворк бол үндсэн функцуудыг агуулсан программын сангууд харин АУС -үүд нь сайтын бэлэн систем гээд ойлгоход болно. Энэ хоёрыг бүр тусдаа зүйлүүд гэж ойлгох хэрэггүй. АУС -үүд өөрийн гэсэн фреймворк дээр л үндэслэн хийгдэнэ. АУС -үүдийг хийхдээ өргөн ашигладаг аль нэгэн фреймворкийг ашигласан ч болно эсхүл зохиогчид өөрсдийн бичсэн фреймворкийг ашиглаж ч болдог.

Бид энэхүү цуврал хичээлээр хэдийгээр жижигхэн боловч бүрэн ажиллагаатай АУС-ийг өөрөө боловсруулахыг авч үзэх болно. Хичээлийн явцад та MySQL бааз үүсгэх, обьект, тогтмолууд, файл оруулах, сессионтой ажиллах гээд Php хэрэгслүүдтэй танилцана. Үүнээс гадна программын логикоос харуулах хэсгийг хэрхэн салгах, илүү аюулгүй PHP кодыг бичих зэргээр өөрийн системийг үүсгэхэд хэрэгтэй зүйлүүдийг мэдэх болно.

Тайлбар:
Хичээлийн матераилуудыг үзэхийн тулд танд PHP , MySQL сервер модулийг суулгасан Apache веб сервер хэрэгтэй болно. Өөрийн комьютерыг веб сервер болгох тухай Компьютерт локал веб сервер суулгах хичээлээс үзээрэй.

Манай АУС-ийн гүйцэтгэх үүрэг.

Эхний ээлжинд бидний хийх АУС-ийн юу хийхийг нарийн тодорхойлсон байх хэрэгтэй. Манай АУС дараах ажиллагааг хийх болно.
Хэрэглэгчийн хэсэг

  • Сүүлийн 5 материалыг үзүүлэх нүүр хуудас
  • Бүх материалын жагсаалтыг үзүүлэх хуудас
  • Сонгосон материалыг үзүүлэх хуудас

Серверийн хэсэг

  • Админ нэвтрэх болон гарах
  • Бүх материалуудын жагсаалт
  • Шинэ материал нэмэх
  • Материалыг засварлах
  • Материалыг устгах

Материал бүр өөрийн толгой, товч агуулга, агуулга, нийтэлсэн огноотой байна.

Ажлын төлөвлөгөө

  1. Өгөгдлийн баазыг үүсгэх
  2. articles хүснэгтийг үүгэх
  3. Тохиргооны файлыг үүсгэх
  4. Article классыг хийх
  5. Хэрэглэгч талын скриптийг хийх. index.php
  6. Сервер талын скриптийг хийх. admin.php
  7. Хэрэглэгч талын теймплейт үүсгэх
  8. Сервер талын теймплейт үүсгэх
  9. Системийн хэвийн хүснэгт, логог үүсгэх

Системийн хийх үйлдлүүд, ажлын төлөвлөгөөг гаргасан болохоор ажилдаа орцгооё. Эхлээд сайтын агуулгыг хадгалах өгөгдлийн баазыг MySQL дээр үүсгэе. Өгөгдлийн баазыг үүсгэхдээ веб серверийн терминал болон phpMyAdmin утилитын алийн ч ашиглаж болно.

Веб серверийн терминалыг ашиглах

mysql клиент программыг ачааллах.

Үүнийг XAMPP Сontrol Panel -г ашиглан хэрхэн хийхийг үзүүлье. Та өөр сервер суулгасан байсан ч нэг их зөрөхгүй. Компьютерт локал веб сервер суулгах хичээлийг үзэн локал серверийг суулгасан бол таны компьютерт XAMPP суусан байх ёстой. XAMPP Сontrol Panel -г нээгээд Shell товчийг дарна.

Санамж:
Shell товчийг эхлээд дарахад терминал ажиллуулах .bat файл үүсгэх эсэхийг асууж болно. Та зөвшөөрсөн хариу өгөхөд л болно.
Нээгдсэн терминалын цонхонд

mysql -u username -p

командыг бичин өгөөд Enter товчийг дарахад Таныг нууц үгээ оруулахыг шаардана. MySQL серверт хандах нууц үгээ оруулна.
username - MySQL серверт өгөгдлийн бааз үүсгэх эрх бүхий хэрэглэгчийн нэр. Локал компьютер дээр ажиллаж байгаа бол хэрэглэгчийн нэрээр root -г ашиглаж болно. Локал компьютерт MySQL сервер суухдаа өгөгдлийн сангийн бүрэн эрхтэй root хэрэглэгчийг пасспортгүйгээр нээн өгдөг. Аюулгүй байдлаа бодвол өгөгдлийн баазыг удирдахдаа өөр нэртэй хэрэглэгч үүсгэж байх нь илүү.   

Өгөгдлийн баазыг үүсгэх.

Эхний алхам зөв хийгдсэн бол mysql> гэсэн промт гарч ирнэ.

create database cms;

командыг өгөөд Enter дарна. Бааз үүсгэсэн тухай мэдээлэл гарч ирнэ.

mysql клиент программаас гарах.

mysql> промтын араас exit командыг өгөөд Enter дарна. Одоо терминалын цонхыг хааж болно.

Одоо бидний системийн агуулгыг хадгалах хоосон бааз үүссэн.

phpMyAdmin утилитыг ашиглах

Өгөгдөл хадгалах баазыг MySQL серверийн phpMyAdmin утилитыг ашиглан хийх боломжтой. Үүний тулд хөтөчийн хаягийн мөрөнд http://localhost/xampp/ гэж бичин ороод PhpMyAdmin цэсээр орно. Таны веб сервер ажиллаж байх ёстойг анхаарна уу. Өөрөөр хэлбэл XAMPP Сontrol Panel дээр Apache болон MySQL серверүүд ажилласан байх хэрэгтэй. PhpMyAdmin хуудасны Databases таб руу ороод гарч ирэх дэлгэц дээр

үүсгэх баазын нэрээ /cms/ өгөөд хоёрдахь жагсаалтаас utf8_unicode_ci -г сонгоод Create товчийг дарна. Таны үүсгэн өгсөн бааз хуудасны зүүн багананд байрлах сервер дээрх баазуудын нэрсийн жагсаалтанд орж ирнэ. phpMyAdmin утилитыг ашиглан баазтай холбоотой олон тооны тохиргоонуудыг хийх боломжтой.
Бид сайтын агуулгыг хадгалах баазыг үүсгэлээ. Баазын нэрийг cms гэж өгсөн. Та өөр нэр сонгож болох ч цаашид бичигдэх кодуудад үүнийгээ тооцох хэрэгтэйг санаж байгаарай. Дараагийн хичээлээс бид баазад хүснэгт үүсгэн өөрсдийн агуулгыг удирдах системээ хийх болно.

Мэдээлэл таалагдсан бол найзуудтайгаа хуваалцаарай.

  Нээгдсэн тоо: 2986 Төлбөртэй

Файлтай ажиллах

Файл нь мэдээлэл хадгалагч дээрх нэр бүхий хэсэг. Файлтай ажиллахын тулд эхлээд түүнийг нээх хэрэгтэй. Энэ зорилгод ихэнхдээ fopen() функцыг ашигладаг. Функц нь нээх файлын нэр болон нээлтийн горимыг заасан тусгай тэмдэгтүүдийг оролтын параметр болгон авна. Эхний параметрын хувьд хэрвээ заагдсан нэртэй файл байхгүй бол функц нь алдаа өгнө. Функцээс source төрлийн утгатай файлын дискрипторийг (файлыг нээхэд олгогдсон дугаар) буцаана. Файлыг нээх ажиллагаа бүтэлгүй болсон тохиолдолд FALSE утгыг буцаана. Хоёрдугаар параметр нь файл нээх горимыг заах бөгөөд доорх утгуудыг авна.

  Нээгдсэн тоо: 2042 Төлбөртэй

Яагаад зөвхөн мөрний тухай тусгай хичээл байгаа талаар та гайхаж байж магадгүй. Өнгөцхөн харвал мөр гэдэг нь String гэсэн төрөл бүхий хувьсагч гэдгээс тэгж харагдаж болох талтай. Гэхдээ PHP -д мөртэй үр дүнтэй ажиллахын тулд энэ сэдвийг гүнзгий ойлгосон байх шаардлагатай.

Мөр гэдэг нь String төрөлтэй хувьсагч ба үнэндээ бол тэмдэгтүүдийн багц юм.

Мөрийг дараах байдлаар тодорхойлж болно.

$string_1="Сайн байна уу";          // давхар хашилттай мөр
$string_2='Сайн байна уу';            // дан хашилттай мөр

Мөрийг тодорхойлох нь хувьсагчид утга олгохтой яг ижилхэн хийгдэж байгаа хэдий ч нэг эсвэл давхар хашилтыг мөр дотор гаргах үед асуудал гарахаар байна. Хэрвээ бид

$str="Тэр "сайн байна уу" гэж хэлэв";
echo $str;

гэсэн кодыг бичвэл програмын ажиллагаа нь мөрөнд утга олгох оператор дээр алдаа өгөх болно. Учир нь мөр гэдэг нь хамгийн ойрхон байрлах хашилтын хоорондох тэмдэгтүүдийн багцыг хэлнэ. Иймд дээрх код нь алдаа өгнө. Энэ байдлаас гарахын тулд бид (\) налуу зураас тэмдэгтийг ашиглана. Тэгвэл дээрх кодыг

  Нээгдсэн тоо: 8723 Нийтийн

Хичээлээр бид PHP хэлний үндсэн ойлголтууд болох хувьсагч, тогтмолуудын талаар авч үзнэ. Эдгээрийг сайн ойлгохгүйгээр програм бичнэ гэдэг хүндрэлтэй. Та ямар нэгэн програмчлалын хэл мэддэг гэсэн ч энэ хичээлийг үзээрэй. Учир нь PHP хэлэнд өгөгдөлтэй ажиллах онцлогууд байдаг.

Хувьсагч

Програмчлалын ямарч хэлэнд програмын ажиллагааны явцад өөрчлөгдөж байдаг өгөгдлийг хадгалах хэрэгсэл байдаг. Эдгээр нь хувьсагчид юм. Хувьсагч нь нэр болон утгаар тодорхойлогдоно.
Хувьсагч - өгөгдөл хадгалах хэрэгсэл.
Хувьсагчийн тухай илүү сайн ойлгохын тулд жишээ авч үзье.

<?php
   $number=5;                   // хувьсагчид 5 гэсэн утга олгож байна.
   $number=2*$number;           // $number хувьсагчийн утгыг 2 үржүүлнэ
   echo $number;                // $number хувьсагчийн утгыг үзүүлнэ
?>

Жишээнд $number нэртэй хувьсагчид (=) тэмдгийг ашиглан 5 гэсэн утгыг олгосон байна. Хувьсагч нь утга хадгалаад зогсохгүй тэдгээрийг өөрчилж болно. Хоёрдугаар мөрөнд $number хувьсагчийн утгыг хоёр дахин өсгөж байна. Хувьсагчийн утгыг үзүүлэхдээ түүнийг нэрийг ашиглаж байна.

  Нээгдсэн тоо: 2913 Бүртгүүлэх

Функц гэсэн ойлголт нь маш дээрээс түүхтэй. Анх машины кодоор програм зохиож байх үеэс програм зохиогчид машинтай нэг хэлээр ойлголцохын тулд нэг тэгүүдийг (01) команд болгон хувиргасны үр дүнд команд үүссэн. Шийдэх бодлогын цар хүрээ ихэссэнтэй уялдан командын тоо нь геометр прогресоор өссөн. Энэ үед програм зохиогчид командуудыг нэг блок болгон нэр өгч ашиглаж болох бүтцийг санаачилсан байна. Үүнийг процедур гэдэг. Ингэснээр програмын кодыг жижигхэн ойлгомжтой болгоход асар их түлхэц болсон. Цаашид процедурууд нь оролтын параметруудтай болж хөгжсөн бөгөөд эцэст нь ямар нэгэн үйлдэл хийгээд зогсохгүй утга буцаадаг функц гэсэн ойлголт гарч ирсэн. PHP –д процедур гэсэн ойлголт байдаггүй. Утга буцаадаг ч бай үгүй ч бай бид ганцхан функц гэсэн ойлголтыг хэрэглэнэ. PHP нь маш олон дотоод функцтэй. Үүнээс гадна бусад програмчлалын хэлний адилаар PHP нь програмын код дотор өөрийн функцыг үүсгэх боломжтой. Эдгээрийн голдуу хэрэглэгчдийн функцууд гэдэг. Бид хичээлдээ яг энэ төрлийн функцуудын талаар түлхүү авч үзэх болно.

Үйл явдал /event/ тодорхой үйлдэл хийгдсэн талаар системд мэдэгддэг. Хэрвээ бид энэхүү үйлдлийг ажиглах хэрэгтэй бол яг энд…

Нээгдсэн тоо : 234

 

Манай төсөл олон хуудсуудтай болон тэдгээрийн хооронд динамикаар шилжилт хийж байгаа ч тухайн үед шилжилт хийгдсэн хуудаст тохирох…

Нээгдсэн тоо : 322

 

Зочин (Visitor) паттерн классуудыг өөрчлөхгүйгээр тэдгээрийн обьектуудын үйлдлийг тодорхойлох боломжийг олгоно. Зочин хэвийг ашиглахдаа классуудын хоёр ангилалыг тодорхойлно.…

Нээгдсэн тоо : 283

 

Лямбда-илэрхийлэл нь нэргүй аргын хураангуй бичилтийг илэрхийлнэ. Лямбда-илэрхийлэл утга буцаадаг, буцаасан утгыг өөр аргын…

Нээгдсэн тоо : 381

 

Кодийн сайжруулалт /рефакторинг/ хичээлээр програмийн кодоо react -ийн зарчимд нийцүүлэн компонентод салгасан.…

Нээгдсэн тоо : 424

 

Хадгалагч (Memento) хэв обьектын дотоод төлвийг түүний гадна гаргаж дараа нь хайрцаглалтын зарчмыг зөрчихгүйгээр обьектыг сэргээх боломжийг олгодог.

Нээгдсэн тоо : 451

 

Делегаттай нэргүй арга нягт холбоотой. Нэргүй аргуудыг делегатийн хувийг үүсгэхэд ашигладаг.
Нэргүй аргуудын тодорхойлолт delegate түлхүүр үгээр…

Нээгдсэн тоо : 521

 

Математикт харилцан урвуу тоонууд гэж бий. Ямар нэгэн тооны урвуу тоог олохдоо тухайн тоог сөрөг нэг зэрэг дэвшүүлээд…

Нээгдсэн тоо : 600

 

Төсөлд react-router-dom санг оруулан чиглүүлэгчдийг бүртгүүлэн тохируулсан Санг суулган тохируулах хичээлээр бид хуудас…

Нээгдсэн тоо : 629

 
Энэ долоо хоногт

Тэмцээнд 16 шатарчин оролцсон. Нэгийн давааны хуваарийн хичнээн хувилбар байж болох вэ? / Хуьаарьт дор хаяж нэг өрөгт тоглох хүмүүс нь ялгаатай бол хувилбар гэж тооцно. Тоглох өнгө, ширээний дугаарыг тооцохгүй/

Нээгдсэн тоо : 1302

 

Нээгдсэн тоо : 1071

 

prob02_187_01 илэрхийллийг хялбарчил.

Нээгдсэн тоо : 181