АУСистем хийцгээе. Хичээл 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 хэл хэсгийн хичээлүүдийг үзэн ерөнхий ойлголтыг авах хэрэгтэй.
  • Программын кодыг өөрөө гараараа бичин өгөх нь хэлийн бичлэгийг сурахад их тустай байдаг.

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

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

Програмчлалын бүхий л хэлнүүдэд операторууд байдаг. Үнэн хэрэгтээ бид өмнөх хичээлүүдэд операторуудыг ашиглаж байсан хэдий ч эдгээрийн тухай дурдаагүй билээ. Оператор ашиглах нь бидний өдөр тутам ашигладаг арифметик үйлдлүүдтэй төстэй болохоор онцын хүндрэлгүй зүйл.

Оператор – шинэ утга гаргахын тулд ашигладаг хэлний бүтэц юм.

Шийдэх асуудлаасаа хамаарч операторууд нь харьцуулах, арифметик, логик, мөрийн гэх мэт олон төрөл байдаг. Операторыг хэрэглэж байгаа утгуудыг операнд гэдэг. Жишээ нь

$num=CASH-3; энд ( = ) тэнцүү болон ( - ) хасах тэмдгүүд нь операторууд $num, CASH, 3 нь операндууд болно.

Илэрхийлэл гэдэг нь оператор болон операндуудын нийлсэн бичлэг юм.

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

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

Нөхцөлт оператор

Нөхцөлт оператор нь тодорхой нөхцлөөс хамаарч програмын ажиллагааны цаашдын үргэлжлэх боломжийг (зам) сонгох хэрэгсэл юм. Жишээ нь бид өдөр бүр цахим шуудангаа шалгахын өмнө хэрэглэгчийн ID, нууц үгээ оруулж өгдөг шүү дээ. Хэрэглэгчийн оруулсан мэдээллийг цахим шуудангийн програм шалгаад хэрвээ мэдээлэл үнэн бол шуудангийн хайрцагт нэвтрүүлж харин мэдээлэл буруу бол дахин оруулахыг шаарддаг. Энэ бол нөхцөлт операторыг ашиглаж байгаа тод жишээ юм.

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

Өгөгдөл, дэд программууд (процедур, функцууд) тэдгээрийн боловсруулалтууд хоорондоо холбоо багатай байдаг процедур программчлалын үзэл санааны хөгжлийн үр дүнд обьект хандалтад программчлал үүссэн. ОХП -ын зарчмыг анхлан дэвшүүлсэн программчлалын хэл бол Норвегийн эрдэмтэн Оле-Йохан Далийн (Ole-Johan Dahl) боловсруулсан Симула (Simula) байсан юм. 1967 онд гарсан энэхүү хэлэнд обьект, класс, виртуал аргууд гэх мэтийн дэвшилтэд санаануудыг гарган тавьсан боловч тэр үедээ эдгээрт нэг их анхаарал хандуулаагүй өнгөрчээ.

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

Cookie гэж юу болох, түүнийг үүсгэх, унших, устгах талаар Cookie-тэй ажиллах хичээлд үзсэн. Энэ хичээлээр Php -гийн Cookie ойлголтын талаар арай дэлгэрүүлэн авч үзье. Сервер хэрэглэгчээс POST эсхүл GET аргын алингаар нь ч бай өгөгдөл хүлээн авсан байлаа ч тэр хэрэглэгчийн талаар юу ч мэдэхгүй. Өөрөөр хэлбэл сервер өгөгдөл хүлээн аваад боловсруулаад үр дүнг бидэнд буцаана. Бид серверт шинээр эсхүл дахин шаардлагыг илгээхэд тэр бидний талаар юуг ч санахгүй тул таныг шинэ хэрэглэгч эсхүл үгүй гэдгийг мэддэггүй. Энэ нь хэн нэгэн сохор хөгжимчин гудамжинд тоглолт хийгээд зогсож байхад өнгөрч яваа хүн түүний хандивын хайрцагт мөнгө хийгээд дараа нь буцахдаа дахин хийхтэй төстэй зүйл. Хөгжимчин мөнгө хийсэн хүн түрүүнд нь өгсөн хүн үү эсхүл өөр хүн байв уу гэдгийг мэдэхгүй шүү дээ.

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

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

 

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

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

 

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

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

 

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

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

 

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

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

 

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

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

 

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

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

 

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

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

 

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

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

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

функцийн уламжлалыг тооц.

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

 

утгыг ол.

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

 

prob04_103_01 ба prob04_103_02 векторууд перпендикуляр бол y -ийн утгыг ол.

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