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


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

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

Поиск

 

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 тилдеринден бир топ артта калууда.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

 

 

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 – тиркеме түзүүдө критикалуу деп эсептелбейт, анткени чоң ылдамдык менен төмөнкү баанын дал келиши сервердин популярдуу кылды десек болот.

 

2.6 Модель – көрүнүш – башкаруу

Модель-Көрүнүш-Башкаруу (Model-View-Controller) - бир нече долборлоо шаблондорун колдонуучу схема, ал үч компонентке бөлүнөт жана бирисини өзгөртулүшү башкаларга минималдуу таасир берет.

 

Мындай концепцияны колдонуунун жакшы жагы болуп иштөө - логикасы көрүнүштөн ажыратылган.

 

MVC концепциясы берилиштерди, көрүнүштү жана колдонуучунун аракеттерин иштетүүсүн 3 башка копонентке болот:

 

· Модель - берилиштер менен иштейт, запросторду камтыйт жана бул берилиштерди көрсөтө албайт

· Көрүнүш - маалыматтарды көрсөтүүгө жоопту

· Контроллер - система жана колдонуучуну байланыштырып турат, колдонуучу жиберген маалыматтардын баарын карайт жана модель менен көрүнүштү колдонуп колдонуучуга кандайдыр бир жооп чыгарып берет

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

 

Фрэймворк

Фреймворк (англ. framework – калып, структура, иш чөйрө) – маалымат системаларында системанын структурасы; чоң бир проекти иштеп чыгууда колдонулуучу компоненттерди бириктирүүчү, иштеп чыгуу процессин жеңилдетүүчү програмдык жабдык. Функцианалдары бир-бирине окшош болгон подпрограммаларды камтуучу библиотекалардан айырмаланып, калыптар, ар түрдүү максатта колдонулуучу көптөгөн сандагы библиотекаларды өз ичине камтыйт. Фреймворк сөзүнүн ордуна калып (каркас) сөзүн да колдонушат, кээ бир авторлор, калып сөзүн негизги аталышы катары колдонушат.

Програмдык системанын фреймворку, чоң бир проектин компоненттерин бириктирет, иштеп чыгарууну жеңилдетүүчү жардамчы прогаммаларды, код библиотекаларын, тил сценарийлерин жана башка програмдык жабдыктарды камтыйт.

Фреймворктордун эң негизги артыкчылыктарынын бириси болуп, алардын стандарттуу структурага ээ болушу. Мисалга алсак, веб фреймворкторунун көпчүлүгү, тиркемени логикалык сегменттерге (модули, плагины) бөлүштүрүү үчүн MVC архитектурасын колдонушат.

Фреймворктор, конкреттүү жана абстрактуу класстардын көптүгүнөн жана алардын бир-бири менен болон мамилелеринин аныктамасы менен аныкталат. Конкреттүү класстар, кадыресе класстардын бир-бири менен болгон мамилесин аныкташат. Абстрактуу класстар, калыптардын колдонуучу жана көндүрүлүүчү (адаптирующий) башталгыч чекити катары колдонулат.

Symfony Framework

Symfony -PHP5 те жазылган,Model-View-Controller калыбын колдонгон, көз каранды эмес каркас.

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

PHP 5. программалоо тилинде веб тиркемелерин жана сервистерин курууга арналган ачык булактуу (open source) фреймворк. Symfony компонент структурасы уникалдуу, компоненттер бир-биринен минималдуу түрдө көз карандуу. Бул көз карандылык, программисттер үчүн ар бир компонентти өз-өзүнчө колдонууга мүмкүнчүлүк берет. Көп учураларда бул мүмкүнчүлүктү ―use-at-will‖ (өзүң каалагандай иштет) деп атап коюшат.

PHP5 менен гана иштейт (5.2.4, 5.3.2 Symfony 2 үчүн). MySQL, PostgreSQL, SQLite жана башка PDO-дал келүүчү БББС лардын колдоосу менен иштейт. Проектте реляциондук берилиштер базасы тууралуу маалымат объекттик модельге байланыштуу болушу керек. Муну ORM- инструментинин жардамы менен жазаса болот. Symfony алардын ичинен экөөсүн: Propel жана Doctrine колдонот.

Төмөндө симфонинин жакшы жактары тизме катары көрсөтүлгөн:

· MVC – Модель Көрүнүш Башкаруучу (Model View Controller)

· DRY – Өзүңдү кайталаба (Don’t Repeat Yourself)

· Debugger

· Чоң колдонуучулар коому

· Булактар

· Инновация

· Туруктуу

Symfony акысыз жана MIT нин лицензиясы менен жарыяланат.

Проекттин демөөрчүсү- Sensio Labs аттуу француз компаниясы.

2007 жылы- Symfony 1.0 версиясынын чыгышы

2011 жылы – Symfony 2.0 версиясынын чыгышы.

Symfony 2 Framework тун каталог структурасы:

app/

cache/

config/

logs/

Resources/

bin/

src/

Acme/

DemoBundle/

Controller/

Resources/

vendor/

symfony/

doctrine/

web/

app.php

Doctrine 2

Чоң дорлбоорлордо азыркы учурда берилиштер базасы менен түз байланышып маалымат алмашуу көп деле кездеше бербейт. Себеби мындай жол менен программа түзүү кыйын болушу ошондой эле машакаттуу болушу далилденген. Ушул проблеманы чечүү үчүн программисттер берилиштер базасы менен иштеген SQL тилинин үстүнөн абстракцияны түзүп чыгышкан. Доктрин дага ошондой абстракциялоочу катмарлардын бири болуп саналат.

Доктрин өзүнүн архитектурасын Java тили үчүн жасалган Hibernate SQL ден алган. Доктрин атайын PHP программалоо тили үчүн түзүлгөн. Мында кадимки таблицалардын саптарынын ордуна обьектке багытталган программалоодогу обьект түшүнүгү колдонулат. Таблицанын ар бир мамычасы обьектинин бир атрибуту болот. Ар бир сап өзүнчө обьект катары каралат.

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

Symfony фреймворгу үчүн доктрин унпуктоо боюнча берилиштер базасынын үстүнөн абсртакциялоочу болуп орнотулган. Демек бул дагы симфони фреймворгунун жакшы жактарынын бири.

 

Веб – сайтты ишке ашыруу

3.1 Жалпы түзүлүш

Сайтты иштеп чыгуунун баштапкы этаптарында албетте кандай структурага ээ болоору жана кийинки өзгөртүү, кошумчаларга ийкемдүү бир структура түзүлүшү ойлонуштурулган. Тиркеменин түзүлүшүн аныктаган негизги программало паттерни катары ыңгайлуу логикалык структуралоо мүмкүнчүлүгүнө ээ MVC (Model View Controller) паттерни тандап алынды. Symfony MVC долбоорлоонун классикалык калыбында негизделген. Кыскасы, Symfony MVC паттернин структурасын ээ. MCVнин архитектурасы үч деңгээлден турат. Алар жөнүндө 2 главада маалымат берилген.

Үч деңгээлге бөлүштүрүү болгондуктан тиркемелер структураланууга ээ болушат. Код түшүнүктүү жана аны өзгөртүүгө жеңил болот. Иштеп чыгуу ийкемдүү боло баштайт. Мисал катары, эгер иштетилип жаткан тиркеме жалаң гана кадимки браузерледе иштебестен портативдүү компьютерлерде дагы иштөөсү керектелсе, дагы бир view (портативдик компьютерлер үчүн) түзүш керек. Мен түзүп жаткан сайттын түзүлүшү MVC паттерндин негизинде түзүлгөн.

 



Поделиться:


Последнее изменение этой страницы: 2017-02-10; просмотров: 522; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 216.73.217.110 (0.009 с.)