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

Өмнөх хичээлүүд бид манай АУСистемийн цөм болох Article классыг бичсэн. Одоо сайтын хэрэглэгчийн талын скриптийг бичих болно. Юуны өмнө хэрэглэгчийн талын программыг агуулах index.php нэртэй файл үүсгэнэ. Энэ файл нь хэрэглэгчийн хөтөч дээр хуудсыг үзүүлэх юм. Файлыг сайтын үндсэн хавтаст хадгалан өгөөд доорх кодыг оруулна.

<?php

require( "config.php" );
$action = isset( $_GET['action'] ) ? $_GET['action'] : "";

switch ( $action ) {
  case 'archive':
    archive();
    break;
  case 'viewArticle':
    viewArticle();
    break;
  default:
    homepage();
}

function archive() {
  $results = array();
  $data = Article::getList();
  $results['articles'] = $data['results'];
  $results['totalRows'] = $data['totalRows'];
  $results['pageTitle'] = "Мэдээний архив | Сонин мэдээ";
  require( TEMPLATE_PATH . "/archive.php" );
}

function viewArticle() {
  if ( !isset($_GET["articleId"]) || !$_GET["articleId"] ) {
    homepage();
    return;
  }

  $results = array();
  $results['article'] = Article::getById( (int)$_GET["articleId"] );
  $results['pageTitle'] = $results['article']->title . " | Сонин мэдээ";
  require( TEMPLATE_PATH . "/viewArticle.php" );
}

function homepage() {
  $results = array();
  $data = Article::getList( HOMEPAGE_NUM_ARTICLES );
  $results['articles'] = $data['results'];
  $results['totalRows'] = $data['totalRows'];
  $results['pageTitle'] = "Сонин мэдээ";
  require( TEMPLATE_PATH . "/homepage.php" );
}

?>

Программын кодыг дэлгэрүүлэн авч үзье.

1. Тохиргооны файлыг оруулан ирнэ.
Программын эхний мөрөөр config.php файлыг оруулан ирснээр программын бүх тохиргоонуудыг скрипт ашиглах боломжийг бүрдүүлнэ. Энд бид include() биш require() функцийг ашигласан. Учир нь require() функц оруулан ирэх файл байхгүй тохиолдолд алдаа өгдөг.

2. action параметрийн утгыг авах.
$_GET['action'] параметрийн утгыг скриптэд ашиглах үүднээс түүнийг $action хувьсагчид авна. Гэхдээ эхлээд isset() функцийг ашиглан $_GET['action'] элемент утгатай байгааг шалгах хэрэгтэй. Хэрвээ утга тодорхойлогдоогүй байвал $action хувьсагчид хоосон мөр ("") утга олгоно. Форм, куки, хайлтын форм зэрэг хэрэглэгчээс ирүүлсэн утгуудыг хэрэглэхээсээ өмнө тодорхойлогдсон эсэхийг шалгаж байх нь программчлалын сайн дадал. Энэ нь системийн аюулгүй байдал талаасаа ч тэр программын ажиллагааны үед "undefined index" гэсэн сануулга гарахаас урьдчилан сэргийлдэг.  

3. Гүйцэтгэх ажиллагааг тодорхойлох.
Архив, материалыг үзүүлэх гээд цаашдын үйлдлийг тодорхойлохын тулд URL -ээр дамжин ирсэн action парамерийг switch блок шалгана. Хэрвээ URLaction параметр байхгүй бол нүүр хуудсыг гаргана.

  • archive() функц.
    Функц Article классын getList() аргыг ашиглан өгөгдлийн санд байгаа бүх материалыг үзүүлнэ. Функц getList() аргын үр дүн ба хуудасны гарчгийг $results ассоциатив массивт хадгалсанаар темплейт түүнийг хуудаст гаргах боломжтой болно. Төгсгөлд нь хуудсыг үзүүлэх хэвийг /темплейтийг/ оруулан ирнэ. Бид хэвийн талаар сүүлд үзэх болно.
  • viewArticle() функц
    Энэ функц хуудаст нэг материалыг үзүүлнэ. Функц URL -ийн articleId параметрийг аваад түүнийг тодорхойлогдсон эсэхийг шалгаад утгатай бол материалын обьектыг авахын тулд Article классын getById() аргыг дуудна. Аргаас буцаах үр дүнг үзүүлэх хэвд /темплейт/ ашиглахаар $results массивт хадгална. Хэрвээ материалын ID буюу articleId параметр байхгүй бол функц нүүр хуудсыг үзүүлнэ. Параметрийг шууд дамжуулахын тулд articleId -г (int) төрөлд хөрвүүлж байгаад анхаарна уу. Энэ нь кодод тооноос өөр утга дамжуулахаас сэргийлнэ.
  • homepage() функц.
    Кодын сүүлийн функц homepage() тохиргооны файлд тоог нь заан өгсөн сайтын нүүр хуудаст үзүүлэх материалын жагсаалтыг үзүүлнэ. Тохиргооны файлд HOMEPAGE_NUM_ARTICLES тогтмолын утгыг 5 гэж өгснийг санаж байгаа байх. Функц нь getList() аргад буцаах материалын тоог хязгаарлан өгсөн HOMEPAGE_NUM_ARTICLES параметрийг дамжуулж байгаагаараа л archive() функцээс ялгагдана.

Санамж:

  • Php кодыг сайн ойлгохын тулд сайтын Php хэл хэсгийн хичээлүүдийг үзэн ерөнхий ойлголтыг авах хэрэгтэй.
  • Программын кодыг өөрөө гараараа бичин өгөх нь хэлийн бичлэгийг сурахад их тустай байдаг.

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

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

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

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

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

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

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

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

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

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

Өнөөдөр бид дадлагын хичээлээ обьект хандалтад программчлалын суурь ойлголтын нэг болох өвлөх зарчмаар үргэлжлүүлнэ. Өвлөх (Inheritance) гэж юу вэ? Өмнө нь үүсгэсэн байсан классын бүх арга болон шинжүүдийг дараагийн класс өвлөн авах боломж юм. Энэ тохиолдолд өмнө нь үүсгэсэн классыг "эцэг" харин түүнээс өвлөлт хийж байгааг "хүүхэд" гэж нэрлэдэг талаар Өвлөх (Inheritance) зарчим хичээлд үзсэн. Иймд механизмын талаар энд дэлгэрүүлж үзэлгүйгээр шууд дадлагын даалгавартаа орцгооё.

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

Обьект хандалтад программчлалыг суралцахад тойрон гарах аргагүй нэг чухал сэдэв бол онцгой байдлын (exceptions) боловсруулалт юм. Сэдвийг ойлгоход хялбар байх үүднээс шууд онцгой байдал буюу exceptions -ийн тодорхойлолтоос эхлэе. exceptions гэдгийг онцгой байдал гээд орчуулчихлаа. Хир оновчтой болсныг сайн мэдэхгүй. Гэхдээ ойлгох нь чухал даа.

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

HTML форм гэдэг нь HTML хэлний өгөгдөл оруулах дамжуулах хэрэгсэл болно. Хэдийгээр энэ нь PHP хэлтэй шууд холбоотой биш ч гэсэн хичээлийн материалыг илүү сайн ойлгохын тулд формыг хэрхэн үүсгэх үндэсийг авч үзэх хэрэгтэй. Ямар ч форм нь <form> тегээр эхлээд </form> тегээр дуусна. Нээж байгаа тегийн дотор HTML формын шинжүүдийг тодорхойлсон атрибутуудыг бичиж өгч болно. Эдгээр нь тус бүрдээ нэр болон утгатай байх бөгөөд action ба method атрибутуудыг бид голлон авч үзнэ. <form> ба  </form>  тегүүдийн хооронд текст оруулах, жагсаалт, товч гэх мэтээр HTML-ын бүх тегүүдийг ашиглаж болно. HTML хэлний талаарх мэдээллийг сайтын HTML хэсэг дэх хичээлүүдээс үзээрэй. action атрибутад HTML формоос дамжуулсан өгөгдлийг боловсруулах файлын нэрийг зааж өгдөг. Жишээ нь

Класс ба структурт ердийн талбар, арга, шинжүүдээс гадна статик талбар, арга, шинжүүд байж болдог. Статик талбар, арга, шинжүүд…

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

 

Хичээлээр useState -тэй тун төстэй useRef хукийн талаар авч үзье. useRef хукийн онцлог ашиглалтыг компонент хэдэн удаа дахин…

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

 

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

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

 

Нийтлэлээр графикийн хэвүүдийн /GUI pattern/ түүхийг авч үзье. Боловсруулалтын графикийн хэвүүдийг 30 гаруй жилийн туршид боловсруулж байгаа бөгөөд…

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

 

Хааяа өөр өөр параметрүүдийн багцтай нэг аргыг үүсгэх шаардлага гардаг. Ирсэн параметрүүдээс хамааран аргын тодорхой хэрэгжүүлэлтийг хэрэглэнэ. Ийм…

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

 

Ямарч програмын ажиллагааны чухал хэсэг бол төрөл бүрийн мэдээллийн боловсруулалт, тэдгээртэй ажиллахтай холбоотой байдаг. Иймээс энэ хичээлээс vuejs

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

 

Хичээлээр react -ийн хукуудаас их өргөн ашиглагддаг useEffect -ийн талаар авч үзье. useEffect -ийн ажиллагааг судлах хуудасны кодийг

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

 

Илэрхийлэл бол математикийн хэлний үндэс болсон суурь ойлголтуудын нэг. Математикийн илэрхийллийг тооцооны алгоритм, аксиом, теорем, бодлогын нөхцлүүд гээд…

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

 

Програм зохиох бол нарийн төвөгтэй ажил. Ямар ч програмын хувьд өөрийн хийх ажлаа гүйцэтгэхийн чацуу цаашдаа хөгжих, ажлын…

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

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

тэгшитгэлийг бод.

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

 

хязгаарыг бодоорой.

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

 

Ангийн нийт сурагчдын 60% нь эмэгтэй сурагчид байдаг. Ангиас санамсаргүйгээр нэг сурагч сонгоход эрэгтэй сурагч байх магадлалыг ол.

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