Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Азамат_Курманбеков_Дипломдук_Иш.docx
Скачиваний:
4
Добавлен:
01.07.2025
Размер:
4.49 Mб
Скачать
  1. Колдонуулучу технологиялар

    1. Долбоорлоо методун аныктоо

Азыркы учурда долбоорубузду жасоо үчүн көп аппараттык жана программдык аспаптар бар жана күн өткөн сайын алардын саны көбөйөт. Ошондуктан алардын эң ылайыктуу жана эң пайдалуусун тандоо үчүн биз терең анализ жана изилдөөнү өткөрүшүбүз керек. Канчалык тандап алган долбоорлоо методу туура болсо, ошончолук программабыз күтүлгөн деңгээлде иштейт жана баардык коюлган талаптарга жооп берет. Программабызга негизинен берилиштер базасы, бизди канааттандырган программалоо тили, биздин берилиштер базасын тейлеп турган операциондук система да керек.

    1. Программалоо тилин тандоо

Программалоо тили компьютердик программалар колдонгон лексикалык, синтаксистик жана семантикалык эрежелердин жыйындысын аныктайт.

Ал программистке, компьютердин кайсы кубулушка кандай таасир бергенин, кантип сактоосун жана кантип өткөрүп берүүсүн так аныктап турат.

Программалоо тилдери эки класска бөлүнөт: компиляциялануучу жана интерпретациялануучу. Компилятор программаны көз ирмемде жана бүтүндөй машина тилине которот жана которуп жатып башка программаны пайда кылат. Ал эми интерпретатор машина тилине, иштеп жаткан учурда которот.

Программалоо тилдеринин төмөнкү класстарга бөлүп карасак болот.

  • Функционалдык

  • Императивдик

  • Процедуралык

  • Вектордук программалоо тилдери

  • Аспектке багытталган программалоо тилдери

  • Декларативдик

  • Динамикалык программалоо тилдери

  • Үйрөнүү үчүн программалоо тилдери

  • Интерфейс түшүндүрмөлөрү үчүн

  • Прототиптик

  • Объектке багытталган

  • Рефлексивдик

  • Логикалык программалоо тилдери

  • Параллель праграммалоо тилдери

  • Сценарийлик жана скрипттик праграммалоо тилдери

  • Эзотериялык

Азыркы учурда веб-программалоодо эң популярдуу тили PHP эсептелинет. Андан сырткары долбоор веб-сайт болгондуктан дипломдук ишимди PHP программалоо тилинде жазууну чечтим.

    1. PHP

PHP (PHP: Hypertext Preprocessor) - «PHP: гипертекст препроцессору» - веб – тиркемелерди иштеп чыгуу үчүн интенсивдүү түрдө колдонулган жалпы колдонуучу скриптик программалоо тили. Азыркы учурда көбүнчө хостинг-провайдерлер тарабынан колдонулат жана динамикалык веб сайттарды программалоодо колдонулган тилдердин арасынан эң алдыңкылардан болуп эсептелет.

Бул программалоо тили энтузиасттар тобу тарабынан ачык код проекти катары өнүктүрүлүп келүүдө. Проект GNUGPL лицензиясы алдында эмес, өзүнүн лицензиясы менен таратылат.

Желе үчүн программалоо тармагында PHP – эң популярдуу программалоо тили (JSP, Perl, ASP.NET колдонгон тилдер менен бир катарда), өзүнүн жөнөкөйлүгү, иштөө ылдамдыгы, бай функционалдуулугу, кросплатформдуулугу жана PHP лицензиясынын негизинде булак коддорунун таратылышы менен айрымаланат.

Веб-сайттарды куруу тармагында популярдуулугу веб-тиркемелерди иштеп чыгуу үчүн көптөгөн даяр инструменттерди камтыганы менен түшүндүрсөк болот. Алардын негизгилери:

  • Автоматтык түрдө GET, POST жана COOKIE параметрлерин, жана сервердик чөйрөнүн өзгөрмөлөрүн алдын ала белгилүү массивдерге өткөрүүсү.

  • Файлдык функциялар локалдык режимде иштегени менен чектелбестен, алыскы файлдар менен да иштей алат.

  • Автоматтык түрдө HTTP-баштарынын клиентке жиберилиши.

  • Cookies жана сессия менен иштөө мүмкүнчүлүгү.

  • Серверге жүктөлгөн файлдар менен иштөө.

  • HTTP-баштары менен жана HTTP-авторизациясы менен иштөө мүмкүнчүлүгү.

  • XForms менен иштөө мүмкүнчүлүгү.

  • Алыскы файлдар жана сокеттер менен иштөө мүмкүнчүлүгү.

Азыркы учурда PHP жүз миңдеген программистер тарабынан колдонулууда. Издөө системаларына негизделген Tiobe рейтингине карата, 2009-жылы PHP программало тили популярдыгы боюнча 3 орунду ээлеген (Java жана Cи тилдеринен кийин). PHP колдонгон чоң сайттардын тизмесинде Facebook, Wikipedia, В контакте гиганттары кошулат.

Азыркы учурда PHP тилинин жалгыз бир гана реализациясы бар, бир дагы четтеги компания иштетилүүчү модульдарды кол кабыштабайт. Бул жагдай, бир тараптан жаңылыктарды бат киргизүүгө жана таратууга мүмкүнчүлүк тартуулайт, экинчиден стандартсыз түрдө программалоо тилин өнүктүрүүгө жол берет, анткени бирдиктүүү реализация муну өзү эле камсыз кылат. Жогорудагы шарттарда интерпретатордун версиясы чоң мааниге ээ болот, анткени ал программалоо чөйрөсүнүн мүмкүнчүлүктөрүн аныктайт.

Объектке багытталган программалоо

PHP тили объектке багытталган программалоону 5 версиясынан тартып толук түрдө колдонуу мүмкүнчүлүгү пайда болгон.

PHP тилинде класс «class» белги сөзү аркылуу аныкталат. Класстын методдору жана талаалары ачык (public), корголгон (protected) жана жабык (private) болот. PHP ОБП-нун негизин түзгөн үч механизмди колдойт – инкапсуляция, полиморфизм жана мурастоо (негиздик класс extends белги сөзү аркылуу көрсөтүлөт). Интерфейстерди колдонуу (implements белги сөзү аркылуу), финалдык жана абстракттык класстар жана методдорду жарыялоо мүмкүнчүлүгү бар. Көптүк түрдөгү мурастоо колдонулбайт, бирок бир нече интерфести кеңейтүүгө уруксат берилет. Негиздик класстын методдоруна кайрылуу үчүн parent белги сөзү колдонулат.

PHP класстары бир нече атайын методдорго ээ (Magicmethods). Алардын арасынан өзгөчө көңүл бура тургандары – конструктор (__construct()) жана деструктор (__destruct), окуу жана жазуу методдору (__get(), __set() аксессорлору), токтотуу жана калыбына келтирүү (__sleep(), __wake()), клондоо (__clone()) ж.б. Бул методдор жетишерлик деңгээлде ийкемдүү болгондуктан, аларды кайра аныктоо аркылуу объекттин мүнөздөрүн биртоп өзгөртсө болот.

Класс экземплярлары «new» белги сөзү аркылуу жаратылат, объекттин талааларына жана методдоруна кайрылуу «->» операторунун колдонуусу аркылуу жүргүзүлөт. Класстын мүчөлөрүнө методтордун ичинен кайрылуу үчүн $this өзгөрмөсү колдонулат.

class C1 extends C2 implements I1, I2

{

private $a;

protected $b;

function __construct($a, $b){

parent::__construct($a, $b);

$this->a = $a;

$this->b = $b;

}

Public function plus(){

return $this->a + $this->b;

}

}

$d = new C1(1, 2);

echo $d->plus(); // 3

PHP тилинин 5-версиясынан тартып, объекттер шилтеме аркылуу өткөрүлөт:

class C1

{

public $color=”red”;

}

$c = new C1();

echo $c->color; // red

$b = $c;

$b->color = “blue”;

echo $c->color; // blue

PHP интерпретаторунун өзгөчөлүктөрү

PHP - скрипттер иштелип чыккан тиркеменин кроссплатформдуулугун камсыз кылган тартипте иштейт:

1. Коддун лексикалык анализи жана лексемалардын генерациясы.

2. Генерацияланган лексемаладын синтаксистик анализи.

3. Байт-коддун генерациясы

4. Интерпретатор тарабынан байт-коддун иштетилиши.

Жогорудагы процессти ылдамдатуу үчүн атайын програмдык жабдыктарды (акселераторлорду) колдонсо болот. Алардын иштөө принциби –генерация болгон байт-коддун кеширлөө аркылуу скриптти иштетүүгө керектелген убакыттын азайтылышында негизделет.

Интерпретатордун эң маанилүү өзгөчүлүгү болуп эстин бөлүштүүшүнүн жана бошотулуушунун контролдоо кереги болбогондугунда. PHP ядросу эс менен иштөөнү автоматтык түрдө чечет, жана скрипттин иши аяктагандан кийин бошогон эсти системага кайтарып берет.

Интерпретаторду колдонуунун бир нече жолу бар:

1. SAPI же ISAPI технологияларын колдонуп, веб-сервер модулу катары (мисалы Apache mod_php модулу). Веб-сервер иштеп баштаганда керектүү модулду жүктөйт жана php-скриптке болгон кайрылуу веб-сервер процессинин чөйрөсүндө аткарылат. Бул метод төмөнкү себептердин таасиринден эң кеңири таралган:

a. Түзөтүү процесси үчүн өтө ыңгайлуу, анткени PHP каталарынын бардыгы экранга чыгарылат. CGI режиминде PHP катасы веб-сервер тарабынан HTTP 500 кодунун генерациясы менен чектелет, жана катаны табуу үчүн лог-файлдарды окуу керек болот.

b. PHP конфигурациясын серверди кайра жүктөбөстөн, .htaccess файлдарын колдонуу аркылуу өзгөртүү мүмкүнчүлүгү бар.

c. CGI режиминде HTTP-аутентификациясын колдонууга мүмкүн эмес.

2. CGI катары. Бул учурда скриптке болгон кайрылуу учурунда веб-сервер «/usr/bin/php-cgi /path/to/script.php» командасын аткарат. Команданы иштетүү үчүн жаңы процесс түзүлөт, жана скрипт веб-сервер чөйрөсүнөн таптакыр башка конфигурацияга ээ боло алган PHP-CGI чөйрөсүндө иштетилет. Бул ыкманын заманбап реализациясы катары FastCGI технологиясы колдонулушу мүмкүн. PHP препроцессору ар бир кайрылууда кайрадан иштетилишине карабастан, бул ыкма коопсуздук тарабынан ишенимдүү болуп эсептелет.

3. Колдонуучу тарабынан командалык саптан иштетилген скрипт катары. Скрипт колдонуучунун чөйрөсүндө иштетилет. Бул учурда PHP программалоо тилин клиенттик GUI-тиркемелерди иштетүү үчүн жана UNIX, GNU/Linux, MicrosoftWindows, MacOSX жана AmiaOS операциондук системаларында административдик маселелерди чечүү үчүн колдонсо болот. Бирок, бул түрдөгү маселелерди чечүүдө Perl, Python жана VBScript тилдеринден бир топ артта калууда.

    1. Web-тиркемелер үчүн берилиштер базасы жана БББС

Бүгүнкү күндө маалыматтык web-тиркемелерди уюштурууда реляциондук берилиштер базасы кеңири таралган. ББ дагы берилиштерди уюштуруунун файлдык системадан айырмаланган өзгөчөлүгү-ал бир эле файлды ар башка тиркемелерде колнонууну камсыз кылат. ББ сы берилиштерди кайталоону минималдаштырат. Мындай амал (кайталоо) , берилиштерге ылдам жетүү үчүн жана бузулган ББ сын кайра калыбына келтирүү үчүн, колдонулат. ББ нын негизги өзгөчөлүгү – анын башка программалардын өзгөчөлүктөрүнөн көз карандысыздыгы жана жана ошондой эле берилиштерди сактоодо логикалык структурасына тийишпестен анын физикалык өзгөчөлүгүн алмаштырууга мүмкүнчүлүк берет. Берилиштер базасы берилиштерге жетүүгө жана аларды сактоого мүмкүнчүлүк берет . Web-сайтта ББ сын колдонуу аркылуу берилиштерди көзөмөлдөө , автоматтык түрдө сайтты жаңыртуу жана колдонуучуну аныктоо сыяктуу иш аракеттерин жүргүзүүгө болот. Маалымат ББ нан алынып , иштетилип чыгып жана сакталышы мүмкүн. Берилиштер базасында жакшы структурага ээ болгон маалыматты сактоо болот, мисалы : колонуучулар тизмеси ,заказдар тизмеси , прайс-лист ж.б. Бирок сакталуучу маалымат булар  менен чектелбейт. Заманбап маалыматтык системалардын берилиштер базасында тексттер, сүрөттөр жана мындан тышкары аткарылуучу программалар жана скриптер сакталат. Керек болгон учурда, тиркеменин берилиштер базасында инструкцияларды жана товарлардын баяндоосун дагы сактоо болот. ББ нын иштеши негизинен программа жана тил каражаттар жыйындысынын б.а БББС нын жардамы менен камсыздалат.

БББС нын негизги маселеси – аппараттык камсыздоо деңгээлиндеги деталдарга киришпестен, ББ нын колдонуучусуна система менен иштөө мүмкүнчүлүгүн тартуулоо.

Татаал web-тиркемелер бир нече себептерден улам БББС нын колдонушат.

Биринчиден, SQL-дин жардамы менен web-программист берилиштерди  сактоо жана аларды  башкаруу маселелерин БББС на кое алат. Экинчиден, БББС сы адамга караганда чоң көлөмдөгү берилиштерди жакшыраак башкара алат. Үчүнчүдөн,PHP нин сценарийлериндеги өзгөрмөлөр жана алардын берилиштери интернет баракчасына суроо талап жөнөтүп аткан учурда гана сакталып турушса, ББ берилиштерди  дайыма  сактап турат. ББ да маалыматты сактоо PHP программист үчүн аз көлөмдөгү код жазууга шарт түзөт.  

БББС нын төмөнкү артыкчылыктарды сунуштайт :

  • берилиштердин  жогорку деңгээлдеги бүтүмдүгү ;

  • көпчүлүк тараптан берилиштерди бөлүшүүдө бири-бирине каршы келүүнү  жойууу;

  • жогорку деңгээлдеги коргоо;

  • стандартуу түрдө коргоо;

  • бир эле структурага ээ болгон ар кандай сунуштарды кылуу;

  • файлдык структурадан көз караандысыздык;

  • ашыкча маалыматты жойуу;

  • объект түрүндө көрсөтүү;

  • жадыбалдардын жоготуусуз бириктирилиши менен дисктеги аймакты үнөмдөө.

    1. MySQL

MySQL - Берилиштер Базасын Башкаруу Системасы. MySQL Sun Microsystems тарабынан түзүлүп жана колдоо көрсөтүлүп келгенб кийин Oracle Corporation компания менен бирге колго алган.

MySQL – өтө чоң эмес берилиштер базасы үчүн көп тараптуу, компактуу сервер. Бул сервер чоң ылдамдыгы, туруктуулугу жана колдонууга оңой болгону менен мүнөздөлөт. MySQL кичине жана орто өлчөмдөгү тиркемелер жана программалар үчүн идеалдуу чечим катары эсептелет. Сервердин негизги кодтору көптөгөн платформаларда компиляция болот. Unix серверлеринде MySQL‘дин серверинин толук мүмкүнчүлүктөрү ачылып, өндүрүштө байкалгандай өсүш көрүнөт.Windows'тун вариаттарында: WindowsNT‘де MySQL сервер катарында, Windows 95/98‘де жөнөкөй процесс катарында колдонулат.

Мүмкүнчүлүктөрү:

  • Берилиштер базасы менен бир убакта иштеген колдонуучулардын саны чектелген эмес.

  • Таблицадагы саптардын саны 50млн‘го жетет.

  • Командалардын тез аткарылышы. учурдагы серверлердин эң тез иштегени деп айтсак болот.

  • Жөнөкөй жана эффективдүү коопсуздук системасы бар. MySQL‘дин чындап тез иштеши үчүн бул сервердин авторлору БББС‘га коюлуучу төмөнкү талаптарды алып салышкан:

Кийиштирилген сурамаларды түзүү. Мисалга алсак: SELECT * FROM table1 WHERE id IN (SELECT id FROM table2).

Транзакцияларды колдоо ишке ашырылган эмес. Анын ордуна LOCK/UNLOCK TABLE колдонулат.

Сырткы ачкычтарды колдоо жок.

Триггер жана сакталуучу процедураларды колдоо каралган эмес.

Көрсөтүү (VIEW) үчүн да колдоо жок.

Бул серверди түзүүчүлөрдүн айтуулары боюнча 2-4 пункттары чоң ылдамдыкка жетишүүгө мүмкүнчүлүк берди. Мындай мүмкүнчүлүктөрWeb – тиркеме түзүүдө критикалуу деп эсептелбейт, анткени чоң ылдамдык менен төмөнкү баанын дал келиши сервердин популярдуу кылды десек болот.