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

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

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

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

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

Интернет сайтад зочлоход тоолуур, төрөл бүрийн график гэх мэт зүйлүүд их байдаг. Эдгээрийн гол онцлог нь динамик байдлаар ажиллаж байдагт байгаа юм. Энэ хичээлээр бид PHP –гээр динамик зургуудыг хэрхэн үүсгэх талаар авч үзэх болно.
Зураг гэдэг нь цэг бүр нь тодорхой өнгийг агуулж байгаа цэгүүдийн олонлог юм. Өөр хоорондоо шахалтын түвшин, чанар гэх мэт үзүүлэлтээрээ ялгаатай зургийн олон форматууд байдаг. Гэхдээ интернтэд GIF (Graphic Interchange Format), JPEG (Joint Photographic Experts Group), PNG (Portable Network Graphics) гэсэн форматуудыг голлон ашигладаг. Ямар зургийг үзүүлэхээс хамаарч форматыг сонгодог. Олон өнгөний хослолтой фото зургуудад JPEG форматыг ашигладаг бол өнгө багатай жижиг (товч, баннер г.м) зургуудад GIF болон PNG форматыг голлон ашиглах жишээтэй.

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

Энэ хичээлээр бид ОХП-ын дадлагын ажлаа үргэлжлүүлэн хийх болно. Өмнөх хичээл конструктор гэсэн ойлголт дээр ирээд дууссан байгаа. Обьект хандалтад программчлалд классын конструктор гэсэн ойлголт байдаг талаар бид Класс ба обьект хичээлд үзсэн. Конструктор гэж юу болохыг дахин сануулахад
Классын конструктор гэдэг нь обьектыг үүсгэх үед автоматаар дуудагдах тусгай арга юм. PHP -д классын конструктор хоёр доогуур зураас construct (function __construct) гэсэн тусгай нэртэй.

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

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

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

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

 

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

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

 

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

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

 

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

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

 

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

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

 

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

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

 

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

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

 

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

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

 

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

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

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

олон гишүүнтийн язгуурууд x1, x2, x3 (x1<x2<x3) бол
1.
2. x1, x2, x3 арифметик прогрес үүсгэх бол
3. Уул прогрессын ялгавар
4.

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

 

sin90 -ийг олно уу.

Жич: Хатуу самар даа. Сурагчид барна гэхэд хүнд болов уу. ЕБС-ийн хүрээний аргаар л бодолтыг хийж байгаа тул бодолтыг харвал гайгүй ч юм шиг санагдаж магадгүй гоё бодлого.

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

 

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

Жич: Бодох арга орж ирж байна уу. Найз нөхөд, багштайгаа хамжаад үзээрэй. Иймэрхүү бодлогууд сэтгэлгээг хөгжүүлэх, арга техникт суралцахад тустай. 

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