63942

Онлайн түрдө дисктерди сатуу жана фильмдерди көрүү веб-сайты

Дипломная

Информатика, кибернетика и программирование

Долбоор сайт болгондуктан жана жогоруда айтылып кеткен баардык касиеттерин жогорку сапатта ишке ашырыш үчүн PHP – тилинде жазылды. Иштетилип чыгып жаткан учурда ар кандай технологиялар колдонулду. Алар жөнүндө маалымат дагы айтылат.

Другие языки

2014-06-27

4.28 MB

5 чел.

КЫРГЫЗ РЕСПУБЛИКАСЫНЫН БИЛИМ БЕРҮҮ МИНИСТРЛИГИ

КЫРГЫЗ-ТҮРК МАНАС УНИВЕРСИТЕТИ

ИНЖЕНЕРДИК ФАКУЛЬТЕТ

КОМПЬЮТЕРДИК ИНЖЕНЕРИЯ БӨЛҮМҮ

( ) Студент дипломдук ишти жактоо сынагына кире алат.

( ) Студент дипломдук ишти жактоо сынагына кире албайт.

Бөлүм башчысы:  ф-м.и.к., доц. Райымбек Султанов

Датасы   Колу

....../......./.......   ....................................

БАКАЛАВР  ОКУУ ПРОГРАММАСЫНЫН  ДИПЛОМДУК  ИШИ

ТЕМАСЫ:

«Онлайн түрдө дисктерди сатуу жана фильмдерди көрүү веб-сайты.»

      Студенттин:

Аты-жөнү:                     Азамат Курманбеков

      Студениттик номери:   0904.01033

    

Жетекчиси:

Аты-жөнү: Чынара Жумабаева

Наамы: ага окутуучу, т.и.к.

 Бишкек,  2014


КЫРГЫЗ РЕСПУБЛИКАСЫНЫН БИЛИМ БЕРҮҮ МИНИСТРЛИГИ

КЫРГЫЗ-ТҮРК МАНАС УНИВЕРСИТЕТИ

ИНЖЕНЕРДИК ФАКУЛЬТЕТ

КОМПЬЮТЕРДИК ИНЖЕНЕРИЯ БӨЛҮМҮ

( ) Студент дипломдук ишти жактоо сынагына кире алат.

( ) Студент дипломдук ишти жактоо сынагына кире албайт.

Бөлүм башчысы: ф-м.и.к., доц. Райымбек Султанов

Датасы   Колу

....../......./.......   ....................................

БАКАЛАВР  ОКУУ ПРОГРАММАСЫНЫН  ДИПЛОМДУК  ИШИ

ТЕМАСЫ:

«Онлайн түрдө дисктерди сатуу жана фильмдерди көрүү веб-сайты.»

 Студенттин:

Аты-жөнү:                     Азамат Курманбеков

      Студениттик номери:   0904.01033

 

Жетекчиси:

Аты-жөнү: Чынара Жумабаева

Наамы:  ага окутуучу, т.и.к.

Колу:   ……………………………

Жактоо баасы     Комиссиянын төрагасы:

...................(сан менен)    э.и.к., доц. Бейшенбек Укуев

...................(жазуу жүзүндө)   Колу..........................................

 Бишкек,  2014


Аннотация

Ачкыч сөздөр:  Административдик панель,  онлайн каталог, заказ,  дисктер,  фильмдер, онлайн  көрүү.

Дипломдук иш 61 барактан, 14 жадыбалдан, 19 сүрөттөн турат.

Изилденичүү объект: «Cinemax» атту команиянын веб-сайты.

Долбоордун негизги максаты:   DVD дисктерди сайт аркылуу таркатуу жана  “Cinemax”  атту компаниянын имиджин жогорулатуу.

Долбоор төмөнкү көйгөйлөрдү чечүүгө умтулат:

  1.  Дүң соода кылуучу заказчиктердин  заказ кылууда кыйынчылыктарды  жок кылуу
  2.  Базарга барып  сатып алуу

Долбоор төмөнкү мүмкүнчүлүктөргө ээ:

  1.  Онлайн каталог жүргүзүү
  2.  Кооз дизайн
  3.  Жеңил интерфейс
  4.  Заказ кылуунун жөнөкөйлүгү
  5.  Каттоо
  6.  Фильмдерди онлайн көрүү

    Долбоор сайт болгондуктан жана жогоруда айтылып кеткен баардык касиеттерин жогорку сапатта ишке ашырыш үчүн PHP – тилинде жазылды. Иштетилип чыгып жаткан учурда ар кандай технологиялар колдонулду.  Алар жөнүндө маалымат дагы айтылат.

Özet

Anahtar kelimeler:  İdari paneli, online katalog, sipariş, diskler, filmler, online izleme.

Bitirme tezi 61 sayfadan, 14 tablodan, 19 resimden oluşmaktadır

Amaç:  DVD diskleri sitenin yardımıyla yayılması.

İkincil amaçlar:

  1.  Reklam
  2.  Yeni müşterileri çekme
  3.  Toptan müşterileri artırmak
  4.  Hizmetlerin kalitesin ve hızın geliştirme
  5.  Teklif edilen hizmet yelpazesinin artırılması
  6.  Hizmetçiler, stüdyonun işleri hakkı22nda bilgilerin sağlanması

Proje aşağıdaki sorunları çözüyor:

  1.  Toptan müşteriler sipariş yaparken  zorlukları yok etme
  2.  Piyasaya gidip satın alma

Aşağıdaki avantajlara sahip:

  1.  Online katalog yönetimi
  2.  Güzel dizayn
  3.  Kolay arayüz
  4.  Sipariş yapma basitliliği
  5.  Kayıt yapma
  6.  Filmleri izleme

             Proje site olduğu için ve yukarıda yazılan özellikleri gerçekleştirmek için PHP dilin kullandım. Gelişme sırasında farklı teknolojiler kullanıldı. Onlar hakkında bilgi verilecek.

Мазмуну

Киришү 1

Иштин максаты жана актуалдуулугу 2

1. Интернет дүкөн: иштөө принциби жана колдонулушу 4

1.1 Интернет дүкөндүн жалпы схемасы 4

1.2 Интернет аудитория 6

1.3 Интернет дүкөндүн функционалдык мүмкүнчүлүктөрү 6

1.4 Интернет дүкөндү иштеп чыгуу процесстердин фазалары. 7

2. Колдонуулучу технологиялар 11

2.1 Долбоорлоо методун аныктоо 11

2.2 Программалоо тилин тандоо 11

2.3 PHP 12

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

2.5 MySQL 18

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

2.7 Фрэймворк 20

2.8 Symfony Framework 20

2.9 Doctrine 2 22

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

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

3.2 Проекттин файлдык архитектурасы 24

3.3 Берилиштер базасы 28

3.4 Коддук реализация 37

3.4.1 Кутуча, BinController.php 38

3.4.2 SearchController.php 46

4. Интернет-дүкөндүн колдонуу көрсөтмөлөрү 49

4.1 Интернет дүкөндү башкаруу 49

4.2 Административдик панель 50

4.3 Колдонуучулар үчүн интернет-дүкөн 54

4.3.1 Каттоо процесси. 54

4.3.2  Каталог 56

4.3.3 Заказ кылуу процесси 56

4.3.4 Онлайн көрүү функционалы 58

Корутунду 59

Колдонулган булактар 60

Глоссарий 61

Сүрөттөр тизмеси

1.1-сүрөт. Электрондук коммерциянын фазалары 7

2.1-сүрөт. MVC 19

3.1-сүрөт. MVCде түзүлгөн тиркеменин иштөө принциби 24

3.2-сүрөт. Файлдар архитектурасы 25

3.3-сүрөт. src/ - бандлдар директориясы 26

3.4-сүрөт. Берилиштер базасы. Негизги маңыз 28

3.5-сүрөт. Онлайн көрүү функционалынын жадыбалдары 35

4.1-сүрөт. Административдик панельге кирүү формасы 50

4.2-сүрөт. Админ панель 51

4.3-сүрөт. Диск кошуу формасы   52

4.4-сүрөт. Дисктердин тизмеси 53

4.5-сүрөт. Фильтрлөө формасы 53

4.6-сүрөт. Колдонуучуну каттоо формасы 54

4.7-сүрөт. Колдонуучун авторизация формасы 55

4.8-сүрөт. Дисктердин каталогу 56

4.9-сүрөт. Диск кошулганын билдирген Popup 57

4.10-сүрөт. Интернет дүкөндүн кутучасы 57

4.11-сүрөт. Төлөм формасы 58

4.12-сүрөт. Фильмдердин каталогу 59

Жадыбалдар тизмеси

1.1-жадыбалы. Башкаруу интерфейсинин функионалдык мүмкүнчүлүктөрү 6

3.1-жадыбалы. discs жадыбалы 29

3.2-жадыбалы. disc_info жадыбалы 30

3.3-жадыбалы. producers жадыбалы 30

3.4-жадыбалы. types жадыбалы 30

3.5-жадыбалы. formats жадыбалы 31

3.6-жадыбалы. сountries жадыбалы 31

3.7-жадыбалы. janrs жадыбалы 32

3.8-жадыбалы. bin_orders жадыбалы 32

3.9-жадыбалы. bin_clients жадыбалы 33

3.10-жадыбалы. gallery жадыбалы 33

3.11-жадыбалы. users жадыбалы 34

3.12-жадыбалы. movies жадыбалы 36

3.13-жадыбалы. comments жадыбалы 36

 


Киришү

        Азыркы жашоону интернетсиз элестетүү абдан кыйын,  жадагалса мүмкүн эмес. “Эмне себептен?” - деп сурашыңыздар мүмкүн. Себеби, азыркы учурда интернет акырындык менен заманбап адамдын көптөгөн жашоо чөйрөсүн каптап жатууда. Мисал катары: маалымат алуу жана көңүл ачуу  аймактарында интернет абдан ыңгайлуу аспап болуп эсептелет. Анткени, анын жардамы менен көптөгөн түрдүү маселелерди чечүүгө болот.  Интернет бизге бири-бирибиз менен сүйлөшүүгө, билим алууга, акча табууга же жөн эле эс алууга баардык  мүмкүнчүлүктөрдү түзүп берет. Интернет барына кызыктуу. Жадагалса, кичинекей бала же болбосо жашка чыккан киши өзүнө кызыктуу нерсени таап алат. Интернеттен  каалаган маалыматты табууга мүмкүн. Дүйнөнүн бүткүл жеринде интернет жеткиликтүү.  Жыйнтыктасак, интернет – биздин жашообуздун ажырагыс бөлүгү. Интернет – биздин эң жакшы жардамчыбыз. Эми түшүндүңүздөр окшойт, эмне себептен жашоону интернетсиз элестетүү кыйын.

       Маалыматты сактоо жана аны таратуу интернеттин негизги багыштоосу. Интернет дүкөндөр ар кайсы товарлар  жөнүндө маалымат сактайт жана аны таратат. Дипломдук ишим интернет дүкөн. Ошондуктан, интернет дүкөндөр жөнүндө маалымат айтып кетейин.  Интернет дүкөн –  бул интернет тармак аркылуу  товарларды сактоо жана сатуу үчүн колдонулган сайт. Колдонуучулар кызыктырган товарын  заказ кылып алуу мүмкүнчүлүгүнө ээ. Эгер компания көптөгөн товар сунуштаса, ушул маалыматты көрсөтүү ыкмасы абдан ыңгайлуу.  Товарлар интернет дүкөндө каталог түрүндө көрсөтүлгөн, бөлүмдөргө бөлүштүрүлгөн жана сүрөт, товарлардын баяндоосу, баасы ж.б. параметрлер эгер зарыл болуп калса. Интернет дүкөндөр товарларды ыңгайлуу издөө функциясына ээ болушат. Колдонуучу товарды карап чыгып жаткан учурда, жаккан товарын кутучуга салып коюу  мүмкүнчүлүктөрүнө ээ. Ал товарлардын санын азайтып жана кереги жок товарларды  өчүрүп салышы дагы мүмкүн.  Анан кийин колдонуучу заказ кылып, товарды кайсы маалда жеткирүүсүн чечип, аягында товардын өзүн алат. Ушундай жөнөкөй этаптар менен интернет дүкөндөрдүн иштөө принцибин көрсөк болот.

  Албетте, интернет дүкөндү жөн эле эч ким жазай бербейт. Интернет дүкөн баардык компанияга сунуштай турган корпоративдик сайт эмес. Интернет дүкөн стандарттык товарлардын ээсине пайдалуу.  Мисалы:  телефондорду же болбосо унаа тетиктерди кийимдерге караганда виртуалдуу текчеде сатуу жөнөкөйрөөк, себеби ченөөнүн кажети жок. Интернет дүкөндүн ээлеринин экинчи группасы  – ар түрдүү соода ишин жүргүзгөн компаниялар. Дипломдук ишим DVD дисктерди таркаткан компаниянын сайты.  Демек, бул долбоордун жардамы менен компания өзүнүн түрдүү иш-аракеттерин жүргүзө алат. Долбоор, компаниянын товарларынын бат өтүшүнө, имиджине б.а. компаниянын өнүгүшүнө түрткү болуп берет. Андан тышкары сайт кошумча киреше алып келиши мүмкүн.

 Иштин максаты жана актуалдуулугу

Иштин максаты:  DVD дисктерди интернет аркылуу жаюу.  “Cinemax”  аттуу компаниянын сайтын иштеп чыгуу.

Долбоордун ишке ашуусу компанияга тиешелүү төмөнкү максаттарга жеткирет:

  1.  Реклама – сайт компаниянын имиджи. Сайт аркылуу компания элге таанымал болуу ыктымалдуулугу көп.
  2.  Дисктердин базасын түзүү – компания үчүн электрондук каталог жүргүзүү көптөгөн жеңилдик алып келет.
  3.  Жаңы кардаарларды ишке тартуу
  4.  Дүң соода кылуучу заказчиктердин санын көбөйтүү
  5.  Сунушталган кызматтардын чөйрөсүн кеңейтүү
  6.  Кызматчылар,  студиянын  иштери жөнүндө мааалыматты сунуштоо

Долбоор сайт болгондуктан интернет жок иштебейт.

Иштин актуалдуулугу:

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


  1.  Интернет дүкөн: иштөө принциби жана колдонулушу

  1.    Интернет дүкөндүн жалпы схемасы

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

        Интернет дүкөн төмөнкү типтүү модельдин функционалдык бөлүктөрүнөн турат:

  1.  товарлардын каталогу
  2.  издөө системасы
  3.  кутуча
  4.  каттоо формасы
  5.  заказды жөнөтүү формасы

         Товарлардын каталогу жөнөкөй жана түшүнүктүү түрдөө товарлардын иретөөсүн ишке ашыра турган татаал жана көп деңгээлдүү берилиштер структурасындай көрсөтүлөт. Мындай каталогту жогорку деңгээли бөлүмдөрдүн тизмесинен турган дарак түрүндө  көрсөтүү эң жөнөкөй.  Бөлүмдөр бөлүмчөлөрдү же конкреттүү товарга шилтемелерди камтышы мүмкүн. Ушундай иреттөө ыңгайлуу жана бат издөөгө жана товарларды заказ кылууга эң зарыл.

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

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

       Каттоо формасы колдонуучулардын  жеке маалыматтарын киргизүүгө колдонулат.  Мындан ары ушул маалымат колдонуучуну интернет дүкөн менен иштөө сеанстардын арасында идентификациялаш үчүн колдонулат.  Берилген маалымат сервер же клиент тарабынан сакталышы мүмкүн.

       Заказ жөнөтүү формасы  заказ берүүчүнүн катташуу маалыматын жана заказды уюмдун электрондук почтасына жөнөтүү үчүн колдонулат.

      Колдонуучунун каттоосу заказ түзүүдө же болбосо интернет дүкөнгө кирүүдө  ишке ашырылат. Товар тандалгандан кийин сатып алуучу тарабынан  кайсы түрдө төлөм ишке ашыруу жана жекткирүү формасын толтуруу талап кылынат. Жеке маалыматты коргош үчүн  өз ара аракеттешүү корголгон канал аркылуу жүзөгө ашырылышы зарыл.  Заказдын калыптанышы  жана  каттоо аяктагандан кийин сатып алуучу жөнүндө чогулган баардык маалымат электрондук витринадан интернет дүкөндүн соода системасына өтөт. Соода системасында талап кылынган товардын складда бар болуусу текшерилет жана төлөм системасына суроо-талап демилгеленет. Эгер товар складда жок болсо камсыздоочуга суроо-талап  жиберилет, сатып алуучуга болсо кечигүү билдирмеси жиберилет.

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

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

  1.  
  2.  
  3.   Интернет аудитория

       Негизги кардаарлардын көпчүлүгү – орто же жогору кирешеси  болгон  25-40 жакштагы эркек кишилер.

       Сатып алуучулардын бир нече тобу бар:

  1.  1 топ – китеп заказ кылуучу кардаарлар, биринчиден өзүнүн кесиптик иш-аракетине керек боло турган  китептерди заказ кылышат.
  2.  2 топ – “кызыккандар”. Бул категорияга оюнчуктардын, китептердин, тасмалардын ж.б. коллекционерлери кирет. Бул кардаарлар өзүнүн кызыкчылыктарын канааттандырыш үчүн товарларды заказ кылышат.
  3.  3 топ – түрдүү товарларды заказ кылуучу кардаарлар. Мисал катары: кийимдер, сувенирлер, электроникалар, турмуш-тиричилик техникалар, күндөлүк турмуштун буюмдары. Ушул кишилер кызыктуу жана оригиналдуу модельдерди жөнөкөй дүкөндөргө салыштырмалуу  арзан баага сатып алабыз деп эсептешет.
  4.  4 топ – “жаңылык сүйүүчүлөр”.  Базарга чыга элек товарларгы ээ болуу калашат.  Эреже катарында, алар колунда бар кишилер.

  1.    Интернет дүкөндүн функционалдык мүмкүнчүлүктөрү

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

1.1-жадыбалы. Башкаруу интерфейсинин функионалдык мүмкүнчүлүктөрү

Функциялар

Түшүндүрмө

1

Функция

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

2

Товарларды башкаруу

Дүкөндүн товарлары менен амалдар Web – серверден түздөн түз ишке ашыралат. Товарлардын жазылышы Web – баракчаларда  түзүлөт, жаңыланат жана өчүрүлөт.

3

Заказдарды көзөмөлдөө жана отчет түзүү

Отчеттор берилиштер базасынын(MicroSoft Access ж.б.) форматында же болбосо талааларды үтүр аркылуу бөлүү  менен ASCII – файл түрүндө генерацияланат.

4

Бөлүмдөрдү башкаруу

Бөлүмдөр боюнча товарлардын классификациялоо башкаруу каражаттары.

5

Сатып алуучулардын  маалыматын башкаруу

Сатып алуучуоардны профильдүү маалыматын сактоо жана автоматтык түрдө тануу.

6

Коопсуздук

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

7

Жарнама каражаттарын башкаруу

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

  1.   Интернет дүкөндү иштеп чыгуу процесстердин фазалары.

1.1-сүрөт. Электрондук коммерциянын фазалары

    Интернет дүкөндү түзүп баштоодон мурун электрондук коммерцияны жакшылап түшүнүү зарыл. 1.1-сүрөттө сатып алуу процессинин схемасы көрсөтүлгөн. Төрт бурчтук блоктор кардаардын аракетин көрсөтөт, сүйрүсү болсо кардаардын  тиешеси жок аракеттер көрсөтүлгөн. Баардык фазалар зарыл болуп эсептелбөөсүн эске алуу керек.

         Маркетинг жана керектөөчүгө багыттоодо жаңылык деле жок.  Эң негизги максат веб-сайтка мүмкүн болгон сатып алуучуларды тартуу. Эгер колдонуучуга сайтка кирүүдө көргөн нерселери жакса, ал айрым товарлардын маалыматын камтыган баракчаларын  карай баштайт.  Негизи колдонуучу биринчиден бөлүмдү тандайн, анан кийин ошол бөлүмдөгү товарларды.  Убакыт өткөн сайын сатып алуучу сатып түгөтүү, жарнама кампаниялар, өз ара байланышкан жана өркүндөтүлгөн товарлар жөнүндө маалымат бюнча кызыга башташы мүмкүн.

        Кийинки этапта сатып алуучу “кутучага” товарларды тандап алат. Кутуча заказга тиешелүү тандалган товарлардын саны, баасы, атрибуттары(өң, өлчөм) ж.б. маалыматарды камтыган кадимки тизмеси катары көрсөтүлөт.

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

        Сатып алуучу тандалган товараларга ээ болууга даяр болсо,  төлөм фазасына өтөт. “Кардаар/бизнес” моделинде сатып алуучу жеткирүүгө даректүү маалыматтарын киргизет. Андан тышкары ушу фазада, кээ бир учурда жардамчы тейлөөгө(кооздоп жасоо) кошумча талаптар киргизилет.

         Жеткирүү жана төлөө маалыматына ээ болгон коммерциялык сайттын эки маанилүү эсептөөгө мүмкүнчүлүгү болот: салык жана жеткирүү баасы. Эгер сатып алуучу жакын жерде жашаса, салыктар жөнөкөй мамлекеттик салык алууга гана барат. Кээ бир учурда сатып алуучунун почта индексини негизинде жергиликтүү(аймактык же шаардык) салыктын колдоосун эске алуу зарыл. Жеткирүүнүн баасы белгиленген чоңдукта болушу мүмкүн же ар бир сатып алынган айрым товар боюнча аралык тактоону киргизүү менен эсептелинет. Эгер сөз эл аралык  заказдарды колдоо жөнүндө болсо кырдаал татаалдашат.

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

       Кредит карталарын колдонууда текшерүү/төлөө автономиялуу же болбосо кошулуу түрүндө ишке ашырылышы мүмкүн. Онлайн түрүндө иштетилип чыгуу учурунда кредит картанын маалыматтары тармак боюнча  корголгон түрүндө жиберилет жана кредит карта текшерүүнү өтүп же өтпөгөнүн көрсөткөн  жооп кайтып келет.

    Заказ жайгаштырылгандан кийин сатып алуучуга  заказдын экран  көчүрмө же тизме түрүндө электрондук почта аркылуу жиберилген отчет берилет, бирок башка варианттары дагы болушу мүмкүн.  Ушу фазада кардаар соода алгоритминен чыгып сатуучуга “орун” берет.

       Эгер кредит картанын маалыматтары автоматтык түрдө ишетилип чыкпаса, заказдын иштетилип чыгуусу финансылык транзакциядан башталат. Эреже боюнча, ушул фазада заказ почтадан же телефондон келген сыяктуу эле бизнес жүргүзүүн стандарттуу эрежелери иштейт. Интернет заказдын иштетилип чыгууну абалын кардаарга  маалымдап турганы мүмкүндүк берет. Мисал катары,  заказ толук иштетилип чыкканын, товарладын баары бар болуусун билдирүү мүмкүн. Ылайыктуу ыкмалар веб-түйүндө иштетилет.

          Текшерилген заказ алынгандан кийин аны аткарыш керек.  Ушу фаза көптөгөн кыйынчылыктарды алып келет.

          Бир нече кампасы болгон чекене соодагерлердин борбордук сактагычтан тапшыруу көйгөлөрү чыгышы мүмкүн.

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

          Цикл товарды кардаарга жеткизүү менен бүтөт. Заказ иштетилип чыгуу фазасына окшоп, кардаар заказдын учурдагы абалын алышы мүмкүн. Алар транспорттук, почталык, коштомо кызматтардын номери.

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

  1.  Колдонуулучу технологиялар

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

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

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

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

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

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

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

  1.  Функционалдык
  2.  Императивдик
  3.  Процедуралык
  4.  Вектордук программалоо тилдери
  5.  Аспектке багытталган программалоо тилдери
  6.  Декларативдик
  7.  Динамикалык программалоо тилдери
  8.  Үйрөнүү үчүн программалоо тилдери
  9.  Интерфейс түшүндүрмөлөрү үчүн
  10.  Прототиптик
  11.  Объектке багытталган
  12.  Рефлексивдик
  13.  Логикалык программалоо тилдери
  14.   Параллель праграммалоо тилдери
  15.   Сценарийлик жана скрипттик праграммалоо тилдери
  16.   Эзотериялык

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

  1.   PHP

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

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

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

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

  1.  Автоматтык түрдө GET, POST жана COOKIE параметрлерин, жана сервердик чөйрөнүн өзгөрмөлөрүн алдын ала белгилүү массивдерге өткөрүүсү.
  2.  Файлдык функциялар локалдык режимде иштегени менен чектелбестен, алыскы файлдар менен да иштей алат.
  3.  Автоматтык түрдө HTTP-баштарынын клиентке жиберилиши.
  4.  Cookies жана сессия менен иштөө мүмкүнчүлүгү.
  5.  Серверге жүктөлгөн файлдар менен иштөө.
  6.  HTTP-баштары менен жана HTTP-авторизациясы менен иштөө мүмкүнчүлүгү.
  7.  XForms менен иштөө мүмкүнчүлүгү.
  8.  Алыскы файлдар жана сокеттер менен иштөө мүмкүнчүлүгү.

 

           Азыркы учурда 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.  берилиштердин  жогорку деңгээлдеги бүтүмдүгү ;
  2.  көпчүлүк тараптан берилиштерди бөлүшүүдө бири-бирине каршы келүүнү  жойууу;
  3.  жогорку деңгээлдеги коргоо;
  4.  стандартуу түрдө коргоо;
  5.  бир эле структурага ээ болгон ар кандай сунуштарды кылуу;
  6.  файлдык структурадан көз караандысыздык;
  7.  ашыкча маалыматты жойуу;
  8.  объект түрүндө көрсөтүү;
  9.  жадыбалдардын жоготуусуз бириктирилиши менен дисктеги аймакты үнөмдөө.

  1.   MySQL

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

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

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

  1.  Берилиштер базасы менен бир убакта иштеген колдонуучулардын саны чектелген эмес.
  2.  Таблицадагы саптардын саны 50млн‘го жетет.
  3.  Командалардын тез аткарылышы. учурдагы серверлердин эң тез иштегени деп айтсак болот.
  4.  Жөнөкөй жана эффективдүү коопсуздук системасы бар. MySQL‘дин чындап тез иштеши үчүн бул сервердин авторлору БББС‘га коюлуучу төмөнкү талаптарды алып салышкан:

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

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

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

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

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

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

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

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

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

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

  1.  

2.1-сүрөт. MVC

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

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

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

  1.    Фрэймворк

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

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

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

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

 

  1.   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 колдонот.

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

  1.  MVC – Модель Көрүнүш Башкаруучу (Model View Controller)
  2.  DRY – Өзүңдү кайталаба (Don’t Repeat Yourself)
  3.  Debugger
  4.  Чоң колдонуучулар коому
  5.  Булактар
  6.  Инновация
  7.  Туруктуу

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

     

2.9 Doctrine 2

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

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

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

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

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

  1.    Жалпы түзүлүш

3.1-сүрөт. MVCде түзүлгөн тиркеменин иштөө принциби

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

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

            

  1.   Проекттин файлдык архитектурасы

          Баардык веб-долбоорлор төмөнкү элементтерден турат:

  1.  Берилиштер базасы, мисалы MySQL же PostgreSQL
  2.  Статикалык файлдар(HTML, сүрөттөр, JavaScript  файлдар,  стильдер жадыбалдары ж.б. )
  3.  Колдонуучулар же администраторлор  жүктөгөн файлдар
  4.  PHP класстар жана китепканалар
  5.  Сырттан келген китепканалар(башка иштеп чыгуучудан келген скрипт)
  6.  Batch файлдар (буйрук сап аркылуу иштетилген скрипттер)
  7.  Окуялар журналы( же болбосо логтор, тиркеме же сервер тараптан  жүргүзүлгөн отчеттор)
  8.  Конфигурация файлдары

3.2-сүрөт. Файлдар архитектурасы

          Жогоруда айтылгандарды тартиптүү түрдө сакташ үчүн Symfony  MVC идеясы жана долбоор/тиркеме/модуль/иш-аракет иерархиясы боюнча түзүлгөн стандарттык файлдык структураны сунуштайт. Файлдык структура долбоор, тиркеме же модуль түзүү учурунда автоматтык түрдө түзүлөт. Албетте, сиз өзүңүздүн талаптарыңыз же заказчиктин талаптары боюнча өзгөртүп алсаңыз деле болот.

Долбоордун директориялары

  1.  app/ - эң негизгиси конфигурацияларды камтыйт жана ошонун ичине routing кирет
  2.  src/ - проектин коду, bundles
  3.  vendor/ - китепканалардын жыйындысы
  4.  web/ - аяккы колдонуучуларга  жеткиликтүү директория

       Эми ар бир директорияны тереңиреек изилдеп көрөлү. web/ - бул сырттан жеткиликтүү болгон баардык файлдардын директориясы. Мисал катары: сүрөттөр, css, js файлдар ж.б. Мындан сырткары ушул директорияда тиркемеге кирүү скрипти жайгашкан(front controller).  Front controller төмөнкүдөй болушу мүмкүн:

// web/app.php

require_once __DIR__.'/../app/bootstrap.php.cache';

require_once __DIR__.'/../app/AppKernel.php';

use Symfony\Component\HttpFoundatholds all tests for the bundle.ion\Request;

$kernel = new AppKernel('prod', false);

$kernel->loadClassCache();

$kernel->handle(Request::createFromGlobals())->send();

 Баардык суроо-талаптарды Front Controller  иштетип чыгат. Front Controller  катарында, кадимки скрипттер чыгышат.

  1.  app/console – тиркемеге CLI(буйрук сабы) аркылуу жетүү
  2.  app/app.php – тиркемеге web аркылуу жетүү
  3.  app/app_dev.php – тиркемеге web аркылуу иштеп чыгуучу режиминде жетүү

          Жогоруда айтылган баардык фронт контроллерлер бир негиз боюнча түзүлүшөт:

  1.  Жүктөөчү класстарды каттоо скриптин кошуу жолу менен  autoload (автоматтык түрдө класстарды жүктөө) тураланат;
  2.  кээ бир учурда класстардын кэши колдонулат (көп колднулган класстар);
  3.  Өзөк иштетилет;

         Өзөк(Kernel) – бул Symfony системанын движогу. Анын негизги максаты иштөө чөйрөсүн демилгелөө.

Өзөк AppKernel.php app/ директориясында жайгашкан.  

app/  директориясын тиркемелерди иштеп чыгуу учурунда биз конфигурацияларды жана роутингти өзгөртүү үчүн колдонобуз. Ушу директория кэш жана логторду камтыйт(app/cache, app/logs), андан тышкары app/Resource тиркеме деңгээлиндеги шаблондорду камтыйт.

3.3-сүрөт. src/ - бандлдар директориясы

src/  биз жазган баардык кодду камтыйт(php, css, js ж.б.), тиркеменин иштөөсүнө зарыл. Ушул директорияда бандлдар(bundle) жайгашкан.

   Symfony фрэмворктун жардамы менен иштеп чыгуунун эң негизги өзгөчөлүгү – бул bundle системасы. Бандл – белгилүү бир максатка жетүү үчүн колдонулган скрипттердин жыйындысы(php, js, html, css ж.б.).  

Symfonyнин өзгөчөлүгү – “баардык нерсе bundle”, тиркеме,  жадагалса өзөктүн функционалы. Башкача айтканда, биз биринчи кезекте бандл түзүшүбүз керек.  

3.3 сүрөттө көрсөтүлгөндөй, src/ директориясы жалаң гана бандлдарды камтыйт.

Бандлдын структурасын карап  кетсек:

  1.  Admin/ - админ панелине тиешелүү класстарды камтыйт(бандл түзүүдө болбойт, колдонуучу тараптан түзүлө турган директория).
  2.  Controller/ - бандлдын контроллери
  3.  DependencyInjection2кызматтарды камтыйт
  4.  Entity берилиштер базасы менен иштөөчү класстарды камтыйт
  5.  Form формаларды түзүгө php скрипттерди камтыйт
  6.  Resources/views/ - көрсөтүү шаблондорун камтыйт(мисалы Hello/index.html.twig)
  7.  Resources/public/ - веб-тиркеменин иштөөсүнө керектүү бөлүкчөлөрдү камтыйт, бирок код болуп саналбайт (сүрөт, css ж.б.). web/ директориясына assets:install буйругу аркылуу көчүрүлөт.
  8.  Tests – бандлдын тесттерин камтыйт

Symfony сунуштаган файлдык архитектура MVСнин баардык  мыкты идеяларын өзүнө тартып алгандыктан, андан тышкары  ийкемдүүлүк жана конфигурацияны өзгөртүү  жөндөмдүүлүгү болгондуктан менин дипломдук ишиме негизки каркас болуп тандалды.    

  1.   Берилиштер базасы

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

  1.  Товарлардын көрсөтүүсү
  2.  Товарлардын классификациясы
  3.  Колдонуучуларды катто
  4.  Товарларды кутучуга кошуу
  5.  Кутучанын ичиндегилерди көрсөтүү
  6.  Төлөм
  7.  ж.б.

Маселелер тизмесинен системага маанилүү маңыздарды чыгарсак болот.  

Товарлар(дисктер), заказдар, кардаарлар, категориялар  ар бир интернет дүкөндүн  негизи катары болуп эсептелинет.

3.4-сүрөт. Берилиштер базасы. Негизги маңыз

Негизги маңыз деген себебим, интернет дүкөн системасына гана тиешелүү жадыбалдар.

Жадыбалдар:

  1.  discs – дисктер жөнүндө маалыматтарды камтыйт
  2.  disc_infoбир диск жөнүндө маалымат камтыйт
  3.  producers – иштеп чыгаруучулардын жадыбалы
  4.  type – дисктердин түрлөрү
  5.  countries – өлкөлөрдүн жадыбалы
  6.  formats – форматтардын жадыбалы
  7.  janrs – жанрлардын жадыбалы
  8.  bin_orders – заказдардын жадыбалы
  9.  bin_clients – кардаарлардын жадыбалы
  10.  galleryдисктерге тиешелүү медиялардын(сүрөт, видео) жадыбалы
  11.  users –колдонуучулардын жадыбалы

Жогоруда айтылган жадыбалдардын талааларын тереңиреек карап кетели

3.1-жадыбал. discs жадыбалы

Мамычанын аты

Берилиштердин тиби

Узундугу

Түшүндүрмө

Discs жадыбалы

1

id

Int

11

Код

2

poster_id

Int

11

Постердин коду

3

country_id

Int

11

Өлкөнүн коду

4

janr_id

Int

11

Жанрдын коду

5

format_id

Int

11

Форматтын коду

6

producer_id

Int

11

Иштеп чыгуучунун коду

7

type_id

Int

11

Түрлөрдүн коду

8

name

Varchar

100

Дисктин аты

9

description

Longtext

Дисктин сыпаттоосу

10

active

Tinyint

1

Активдүү

11

quantity_of_films

Int

11

Фильмдердин саны

12

quantity_of_series

Int

11

Сериялардын саны

13

quantity_of_clips

Int

11

Клиптердин саны

14

date

Datetime

Чыгарылган датасы

15

price

Int

11

баасы

3.2-жадыбалы. disc_info жадыбалы

CREATE TABLE IF NOT EXISTS `cinemax`.`disc_info` (

 `id` INT(10) NOT NULL AUTO_INCREMENT,

 `disc_id` INT(11) NULL DEFAULT NULL,

 `content` LONGTEXT CHARACTER SET 'utf8' COLLATE 'utf8_unicode_ci' NULL DEFAULT NULL,

 PRIMARY KEY (`id`),

 INDEX `FK_disc_info_discs` (`disc_id` ASC),

 CONSTRAINT `FK_disc_info_discs`

   FOREIGN KEY (`disc_id`)

   REFERENCES `cinemax`.`discs` (`id`))

ENGINE = InnoDB

AUTO_INCREMENT = 7

DEFAULT CHARACTER SET = utf8'

COLLATE = utf8_unicode_ci

Disc_info жадыбалы

1

id

Int

11

Код

2

disc_id

Int

11

Дисктин коду

3

content

Longtext

Диск жөнүндө маалымат

3.3-жадыбалы. producers жадыбалы

CREATE TABLE IF NOT EXISTS `cinemax`.`producers` (

 `id` INT(11) NOT NULL AUTO_INCREMENT,

 `name` VARCHAR(100) CHARACTER SET 'utf8' COLLATE 'utf8_unicode_ci' NULL DEFAULT NULL,

 PRIMARY KEY (`id`))

ENGINE = InnoDB

AUTO_INCREMENT = 2

DEFAULT CHARACTER SET = utf8

COLLATE = utf8_unicode_ci

Producers жадыбалы

1

Id

Int

11

Код

2

Name

Varchar

100

Иштеп чыгуучунун аты

3.4-жадыбалы. types жадыбалы

CREATE TABLE IF NOT EXISTS `cinemax`.`types` (

 `id` INT(11) NOT NULL AUTO_INCREMENT,

 `name` VARCHAR(100) CHARACTER SET 'utf8' COLLATE 'utf8_unicode_ci' NULL DEFAULT NULL,

 PRIMARY KEY (`id`))

ENGINE = InnoDB

AUTO_INCREMENT = 6

DEFAULT CHARACTER SET = utf8

COLLATE = utf8_unicode_ci

Types жадыбалы

1

Id

Int

11

Код

2

Name

Varchar

100

Түрлөр

3.5-жадыбалы. formats жадыбалы

CREATE TABLE IF NOT EXISTS `cinemax`.`formats` (

 `id` INT(11) NOT NULL AUTO_INCREMENT,

 `name` VARCHAR(100) CHARACTER SET 'utf8' COLLATE 'utf8_unicode_ci' NULL DEFAULT NULL,

 PRIMARY KEY (`id`))

ENGINE = InnoDB

AUTO_INCREMENT = 2

DEFAULT CHARACTER SET = utf8

COLLATE = utf8_unicode_ci

Formats жадыбалы

1

Id

Int

11

Код

2

Name

Varchar

100

Форматтар

3.6-жадыбалы. сountries жадыбалы

CREATE TABLE IF NOT EXISTS `cinemax`.`countries` (

 `id` INT(11) NOT NULL AUTO_INCREMENT,

 `name` VARCHAR(100) CHARACTER SET 'utf8' COLLATE 'utf8_unicode_ci' NULL DEFAULT NULL,

 PRIMARY KEY (`id`))

ENGINE = InnoDB

AUTO_INCREMENT = 10

DEFAULT CHARACTER SET = utf8

COLLATE = utf8_unicode_ci

Countries жадыбалы

1

Id

Int

11

Код

2

Name

Varchar

100

Өлкөлөр

3.7-жадыбалы. janrs жадыбалы

CREATE TABLE IF NOT EXISTS `cinemax`.`janrs` (

 `id` INT(11) NOT NULL AUTO_INCREMENT,

 `name` VARCHAR(100) CHARACTER SET 'utf8' COLLATE 'utf8_unicode_ci' NULL DEFAULT NULL,

 PRIMARY KEY (`id`))

ENGINE = InnoDB

AUTO_INCREMENT = 19

DEFAULT CHARACTER SET = utf8

COLLATE = utf8_unicode_ci

Janrs жадыбалы

1

Id

Int

11

Код

2

Name

Varchar

100

Жанрлар

3.8-жадыбалы. bin_orders жадыбалы

CREATE TABLE IF NOT EXISTS `cinemax`.`bin_orders` (

 `id` INT(11) NOT NULL AUTO_INCREMENT,

 `bin_client_id` INT(11) NULL DEFAULT NULL,

 `disc_id` INT(11) NULL DEFAULT NULL,

 `amount` INT(11) NULL DEFAULT NULL,

 `coast` DOUBLE NOT NULL,

 PRIMARY KEY (`id`),

 INDEX `IDX_8249FC5E617F627A` (`bin_client_id` ASC),

 INDEX `IDX_8249FC5EC38F37CA` (`disc_id` ASC),

 CONSTRAINT `FK_8249FC5E617F627A`

   FOREIGN KEY (`bin_client_id`)

   REFERENCES `cinemax`.`bin_clients` (`id`),

 CONSTRAINT `FK_8249FC5EC38F37CA`

   FOREIGN KEY (`disc_id`)

   REFERENCES `cinemax`.`discs` (`id`))

ENGINE = InnoDB

DEFAULT CHARACTER SET = utf8

COLLATE = utf8_unicode_ci

Bin_orders жадыбалы

1

Id

Int

11

Код

2

Bin_client_id

Int

11

Кардаардын коду

3

Disc_id

Int

11

Дисктин коду

4

Amount

Int

11

Саны

5

Coast

Double

Жалпы баа

   

3.9-жадыбалы. bin_clients жадыбалы

CREATE TABLE IF NOT EXISTS `cinemax`.`bin_clients` (

 `id` INT(11) NOT NULL AUTO_INCREMENT,

 `user_id` INT(11) NULL DEFAULT NULL,

 `fio` VARCHAR(250) CHARACTER SET 'utf8' COLLATE 'utf8_unicode_ci' NOT NULL,

 `phone` VARCHAR(20) CHARACTER SET 'utf8' COLLATE 'utf8_unicode_ci' NOT NULL,

 `email` VARCHAR(250) CHARACTER SET 'utf8' COLLATE 'utf8_unicode_ci' NOT NULL,

 `address` VARCHAR(255) CHARACTER SET 'utf8' COLLATE 'utf8_unicode_ci' NULL DEFAULT NULL,

 `active` TINYINT(1) NULL DEFAULT NULL,

 `date_order` DATETIME NOT NULL,

 PRIMARY KEY (`id`),

 INDEX `IDX_CBCEFBF9A76ED395` (`user_id` ASC),

 CONSTRAINT `FK_CBCEFBF9A76ED395`

   FOREIGN KEY (`user_id`)

   REFERENCES `cinemax`.`users` (`id`))

ENGINE = InnoDB

DEFAULT CHARACTER SET = utf8

COLLATE = utf8_unicode_ci

Bin_clients жадыбалы

1

Id

Int

11

Код

2

User_id

Int

11

Колдонуучу коду

3

Fio

Varchar

250

Аты-жөнү

4

Phone

Varchar

20

Телефон

5

Email

Varchar

250

Email адрес

6

Address

Varchar

255

Жеткирүү адреси

7

Active

Tinyint

1

Активдүү

8

Date_order

Datetime

Заказ кылынган дата

3.10-жадыбалы. gallery жадыбалы

CREATE TABLE IF NOT EXISTS `cinemax`.`gallery` (

 `id` INT(11) NOT NULL AUTO_INCREMENT,

 `name` VARCHAR(255) CHARACTER SET 'utf8' COLLATE 'utf8_unicode_ci' NOT NULL,

 `context` VARCHAR(64) CHARACTER SET 'utf8' COLLATE 'utf8_unicode_ci' NOT NULL,

 `default_format` VARCHAR(255) CHARACTER SET 'utf8' COLLATE 'utf8_unicode_ci' NOT NULL,

 `enabled` TINYINT(1) NOT NULL,

 `updated_at` DATETIME NOT NULL,

 `created_at` DATETIME NOT NULL,

 PRIMARY KEY (`id`))

ENGINE = InnoDB

AUTO_INCREMENT = 26

Gallery жадыбалы

1

Id

Int

11

Код

2

Name

Varchar

255

Медиянын аты

3

Context

Varchar

64

Контекст

4

Default_format

Varchar

255

Унчукпоо форматы

5

Enabled

Tinyint

1

Активдүү

6

Updated_at

Datetime

Жаңыртуу датасы

7

Created_at

Datetime

Түзүлгөн датасы

3.11-жадыбалы. users жадыбалы

Users жадыбалы

1

Id

Int

11

Код

2

Username

Varchar

255

Логин

3

Email

Varchar

255

Email адрес

4

Enabled

Tinyint

1

Активдүү

5

Password

Varchar

255

Пароль

6

Created_at

Datetime

Түзүлүү датасы

7

Updated_at

Datetime

Жаңыланган датасы

8

Date_of_birth

Datetime

Туулган жылы

9

Firstname

Varchar

64

Аты

10

Lastname

Varchar

64

Фамилиясы

11

Address

Varchar

255

Адрес

12

Roles

Longtext

Рольдор

13

Gender

Varchar

1

Жыныстык

14

ж.б.

Бул жерде интернет дүкөнгө гана тиешелүү жадыбалдары көрсөтүлгөн. Мындан сырткары фильмдерди көрүү функцоналынын берилиштер базасы дагы бар. Жадыбалдары төмөнкү 3.5-сүрөттө көрсөтүлгөн.

3.5-сүрөт. Онлайн көрүү функционалынын жадыбалдары

Жадыбалдар:

  1.  moviesфильмдер жөнүндө маалыматты камтыйт
  2.  comments – комментарийлер
  3.  directors – режиссерлор
  4.  actors – актерлор
  5.  countries – өлкөлөр
  6.  janrs – жанрлар
  7.  movies_director – many-to-many боюнча байланыш жадыбалы
  8.  movies _actors - many-to-many боюнча байланыш жадыбалы
  9.  movies _janrs - many-to-many боюнча байланыш жадыбалы
  10.  movies_countries - many-to-many боюнча байланыш жадыбалы

3.12-жадыбалы. movies жадыбалы

Мамычанын аты

Берилиштердин тиби

Узундугу

Түшүндүрмө

CREATE TABLE IF NOT EXISTS `cinemax`.`movies` (

 `id` INT(10) NOT NULL AUTO_INCREMENT,

 `name` VARCHAR(255) CHARACTER SET 'utf8' COLLATE 'utf8_unicode_ci' NOT NULL,

 `url` VARCHAR(255) CHARACTER SET 'utf8' COLLATE 'utf8_unicode_ci' NOT NULL,

 `poster_id` INT(11) NULL DEFAULT NULL,

 `description` LONGTEXT CHARACTER SET 'utf8' COLLATE 'utf8_unicode_ci' NULL DEFAULT NULL,

 `views` INT(11) NULL DEFAULT NULL,

 `active` TINYINT(4) NULL DEFAULT NULL,

 `year` INT(11) NULL DEFAULT NULL,

 PRIMARY KEY (`id`),

 INDEX `FK_movies_media__media` (`poster_id` ASC),

 CONSTRAINT `FK_movies_media__media`

   FOREIGN KEY (`poster_id`)

   REFERENCES `cinemax`.`media__media` (`id`))

ENGINE = InnoDB

DEFAULT CHARACTER SET = utf8

COLLATE = utf8_unicode_ci

Movies жадыбалы

1

id

Int

11

Код

2

Name

Varchar

255

Аты

3

url

Varchar

255

Фильмге шилтеме

4

Poster_id

Int

11

Постердин коду

5

Description

Longtext

Фильмдин сыпаттоосу

6

Views

Int

11

Көрүү саны

7

Active

Tinyint

1

Активдүү

8

Year

Datetime

Жыл

3.13-жадыбалы. comments жадыбалы

CREATE TABLE IF NOT EXISTS `cinemax`.`comments` (

 `id` INT(10) NOT NULL AUTO_INCREMENT,

 `movie_id` INT(11) NULL DEFAULT NULL,

 `author` VARCHAR(255) CHARACTER SET 'utf8' COLLATE 'utf8_unicode_ci' NOT NULL,

 `comment` LONGTEXT CHARACTER SET 'utf8' COLLATE 'utf8_unicode_ci' NOT NULL,

 `created` DATE NOT NULL,

 `active` TINYINT(1) NULL DEFAULT NULL,

 PRIMARY KEY (`id`),

 INDEX `FK_comments_movies` (`movie_id` ASC),

 CONSTRAINT `FK_comments_movies`

   FOREIGN KEY (`movie_id`)

   REFERENCES `cinemax`.`movies` (`id`))

ENGINE = InnoDB

AUTO_INCREMENT = 8

DEFAULT CHARACTER SET = utf8

Comments жадыбалы

1

id

Int

11

Код

2

Movie_id

Int

11

Фильм коду

3

Author

Varchar

255

Автор

4

Comment

Longtext

Комментарий

5

Created_date

Datetime

Дата

6

Active

Tinyint

1

Активдүү

Жогоруда айтылган функционалга тиешелүү башка жадыбалдарды карай турган болсок, алардын структурасы жөнөкөй. Бирок байланыш жадыбалдарын карап кете турган болсок, алардын негизги максаты эки жадыбал арасындагы many-to-many байланышын түзүү.

movies_actors жадыбалын мисал катары алсак, movies жана actors жадыбалдар арасында many-to-many байлынышын түзөт.

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

  1.  videosтрейлерлердин жадыбалы
  2.  feedbackкайтарма жооп жадыбалы
  3.  slider_header – баштапкы баракчада турган слайдер жадыбалы
  4.  ipsколдонуулардын ip-адрестер жадыбалы
  5.  visits – сайтка кирүүнүн санын камтыган жадыбал

  1.   Коддук реализация

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

     3.4.1 Кутуча, BinController.php

 Кутучага тандалган товар кошуу, өчүрүү, санын көбөйтүү, азайтуу функциялары BinController.php файлында жазылган. BinController.php ичин карап көрсөк.

Колдонуучу товар заказ кылгысы келсе, биринчиден заказ кылуу баскычын басат, анан керектүү амал иштейт. Заказ кылынган товар кутучага түшөт, кийинчереек кутучага өтүп колдонуучу стандарттык амалдарын(кошуу, өчүрүү, төлөм) аткара билет. Коддо кутучага кошуу функциясы төмөндө жазылган:

public function addAjaxBinAction($id)    {

       if($this->getRequest()->isXmlHttpRequest()) {

           $discs = $this->getDoctrine()

               ->getRepository("CinemaxBundle:Discs")

               ->find($id);

           $request = $this -> getRequest();

           if($discs) {

               $disc = $request -> cookies -> get("cookieDiscs");

               if(!isset($disc[$id]) || empty($disc[$id]))

                   $disc[$id] = 0;

               $amount = $request->query->get('amount',1);

               $discPage = $request->query->get('discPage');

               if($discPage == "true")

                   $disc[$id] = $amount;

               else

                   $disc[$id]++;

               $response = new Response();

               $cookie = new Cookie("cookieDiscs[$id]", $disc[$id], time() + 3600);

               $response->headers->setCookie($cookie);

               $response->send();

               return $this->render('CinemaxBundle:Bin:addAjaxBin.html.twig', array('disc' => $discs));

           }

           else {

               throw new \Exception('Что то не так');

           }

       }

       return new Response();

 Заказ кылуу баскычын басканда жогорудагы addAjaxBinAction функциясы аткарылат. Бул эң биринчи иштейт турган функция десек болот. Заказ кылып жаткан учурда дисктин id-си функцияга аргумент катары жиберилет.  Ошо id боюнча discs жадыбалынан керектүү диск изделет. Табылган диск кукиге сакталат. Сакталгандан кийин товар кутучага кошулду деген popup чыгат. Popup ajax-тын жардамы менен чакырылат.  Ошол чакырылган popup-та кутучага өтүү деген шилтемеси бар. Эгер колдонуучу кааласа кутучага өтүшү мүмкүн же болбосо popup-ты жабып товар тандоону улантып кетиши мүмкүн.

Ал эми кутучага өтүү функциясын карасак:

public function binAction()    {

       /* @var DiscsRepository $repository */

       $request = $this->getRequest();

       $discsIds = $request->cookies->get("cookieDiscs");

       $discs = null;

       if (!empty($discsIds)) {

           $repository = $this->getDoctrine()->getRepository("CinemaxBundle:Discs");

           $discs = $repository->getDiscsById($discsIds);

       }

       return $this->render('CinemaxBundle:Bin:discsInBin.html.twig', array(

           'discs' => $discs,

           'discsCount' => $discsIds

       ));

   }

binAction функциясы эч кандай аргумент албайт. Анын макстаты кутучага өтүү. Өткөндө айтылды, заказ кылынан дисктер кукиде сакталат деп. Ушул функция кукиден баардык товарды алып  discsInBin.html.twig файлын чакырат. Ушу менен кутучага өтүү амалы бүтөт.

Товардын санын көбөйтүү, азайтуу, товарды, жыйынтыгы чыгару bin.js аттуу файлда жазылган.

$(".disc_add").click(function () {

       var input = $(this).prev('.disc_input');

       var amount = input.val();

       amount++;

       input.val(amount);

       discTotal(input,amount);

    });

   $(".disc_rem").click(function () {

       var input = $(this).next('.disc_input');

       var amount = input.val();

       if (amount > 1)

           amount--;

       input.val(amount);

       discTotal(input,amount);

   });

   function discTotal(input,amount){

       var html_price = input.nextAll('.disc_total_price').children('.som');

       var price = 40;

       html_price.html(price * amount);

       calculate();

   }

   function calculate() {

       var sumPrice = 0;

       $('.bin_table').find('tr[id]').each(function (i, el) {

           var value = $(this).children('td:last').find('.som').html();

           sumPrice += parseInt(value);

       });

       $('.total_value').html(sumPrice.toString());

   }

 Товарды өчүрүү функциясын карасак:

  public function delAjaxBinAction($id)

   {

       if ($this->getRequest()->isXmlHttpRequest()) {

           $request = $this->getRequest();

           $response = new Response();

           $cookie = new Cookie("cookieDiscs[$id]", null, 9999);

           $response->headers->setCookie($cookie);

           $response->send();

           return new JsonResponse(array());

       }

       return $this->redirect($this->generateUrl("cinemax_homepage"));

   }

Бул жерде delAjaxBinAction функциясы бир аргумент кабыл алат,  анан ошол аргумент аркылуу керектүү дискти кукиден өчүрөт.

Дисктер тандалып, сандары берилип, өчүрө тургандар өчүрүлүп бүткөндөн кийин, эң акыркы этап, бул төлөм. Төлөм баскычын баскандан кийин төмөнкү код ишке ашырылат.

public function binFormAction(Request $request)

   {

       $response = new RedirectResponse($this->generateUrl('cinemax_bin_discs'));

       if ($request->isMethod('POST')) {

           $data = $request->request->get('bin');

           $discs = $request->cookies->get("cookieDiscs");

           if (!empty($discs)) {

               foreach ($discs as $key => $value) {

                   if (!isset($data[$key])) {

                       $response->headers->clearCookie("cookieDiscs[$key]");

                   }

               }

           }

           if (!empty($data)) {

               foreach ($data as $key => $value) {

                   if ($value == 0) {

                       $response->headers->clearCookie("cookieDiscs[$key]");

                   } else {

                       $cookie = new Cookie("cookieDiscs[$key]", $value, time() + 3600);

                       $response->headers->setCookie($cookie);

                   }

               }

           }

           if ($request->request->get('button_bin') == 'Оформить заказ') {

               $response->setTargetUrl($this->generateUrl('cinemax_order'));

           }

           elseif ($request->request->get('button_bin') == 'Продолжить выбор') {

               $response->setTargetUrl($this->generateUrl('cinemax_homepage'));

           }

       }

       return $response;

binFormAction() функциясы кутучадагы болгон маалыматты сактап, мисалы канча диск кошулду, өчүрүлдү ж.б., анан эгер заказды аткаруу баскычы басылган болсо заказ кылуу формасын жиберет. Тандоону улант деген баскычы басылган болсо, сайттын баштапкы баракчасына жиберет. Биздин учурда заказды аткаруу баскычы басылды.

 public function binOrderAction(Request $request)

   {

       /* @var User $user */

       /* @var DiscsRepository $repository */

       /* @var Discs $disc */

       $discsIds = $request->cookies->get("cookieDiscs");

       if (empty($discsIds)) {

           return $this->redirect($this->generateUrl("cinemax_bin_discs"));

       }

       $binClients = new BinClients();

       $user = $this->getUser();

       if (!is_null($user)) {

           $binClients->setUser($user);

           $binClients->setFio($user->getFullname());

           $binClients->setEmail($user->getEmail());

           $binClients->setPhone($user->getPhone());

           $binClients->setAddress($user->getAddress());

       }

       $form = $this->createForm(new BinClientsFormType(), $binClients);

       if ($request->isMethod("POST")){

           $form->handleRequest($request);

           if ($form->isValid()){

               $em = $this->getDoctrine()->getManager();

               $binClients->setDateOrder(new \DateTime());

               $em->persist($binClients);

               $em->flush();

               $repository = $this->getDoctrine()->getRepository("CinemaxBundle:Discs");

               $discs = $repository->getDiscsById($discsIds);

               if (!empty($discs)){

                   foreach ($discs as $disc){

                       $binOrders = new BinOrders();

                       $binOrders->setBinClient($binClients);

                       $binOrders->setDisc($disc);

                       $binOrders->setAmount($discsIds[$disc->getId()]);

                       $binOrders->setCoast($disc->getPrice());

                       $em->persist($binOrders);

                   }

                   $em->flush();

               }

               $this->sendEmail($binClients);

               $this->ClearCookies($discsIds);

               $this->get('session')->getFlashBag()->add('notice', 'Ваш заказ принят');

           }

       }

       return $this->render("CinemaxBundle:Bin:binOrderForm.html.twig", array("form" => $form->createView()));

   }

binOrderAction() функциясы заказ кылынган диск жөнүндө маалыматты кукиден алат. Функция аргумент катары суроо талап алгандыктан, текшерүүдөн өтөт:

 if ($request->isMethod("POST"))

Эгерде суроо талап текшерүүдөн өтпөсө, бизге заказ кылуу формасы жиберилет. Ал жерде колдонуучу жеке маалыматтарын киргизет. Жеке маалыматтарын киргизип бүткөндөн кийин, сактоо баскычын басат. Баскандайн кийин жогорудагы функция кайрадан аткарылат, бирок бул учурда шартка туура келет. Ал эми клиентти bin_clients, заказды bin_orders жадыбалына сактоо амалдары аткарылат. Сактоо аткарылгандан кийин администратордун  почтасына  жаңы заказ келди деген билдирме жиберилет. Куки тазаланат. Заказынар кабыл алынды деген маалымдоо көрсөтүлөт. Ошентип заказ кылуу амалы бүтөт.

3.4.2 SearchController.php

 

SearchController.php  файлында издөө функциясы жазылган. Ар интернет-дүкөндө издөө болушу зарыл.

public function indexAction(){

       $form = $this->createForm(new SearchType());

       $request = $this->getRequest();

       if ($request->isMethod('GET')) {

           $form->submit($request);

           $searchText =$form->get('search')->getData();

           $repository = $this->getDoctrine()->getRepository('CinemaxBundle:Discs');

           $discs = $repository->searchDiscs($searchText);

           $paginator = $this -> get('knp_paginator');

           $pagination = $paginator

               ->paginate($discs, $this->get('request')->query->get('page',1),12);

           $count = count($pagination);

           return $this -> render('CinemaxBundle:Search:index.html.twig', array('count'=> $count, 'pagination'=>$pagination, 'searchText'=>$searchText, 'form'=>$form->createView()));

       }

   }

   public function showFormAction(){

       $form = $this->createForm(new SearchType);

       return $this -> render('CinemaxBundle:Search:searchForm.html.twig', array('form'=>$form->createView()));

   }

Бул коддо издөө амалы аткарылбайт. Бул жерде издөө функциясы чакырылат.

$discs = $repository->searchDiscs($searchText);

searchDiscs() функциясы аргумент катары суралган сөздү алат.

Ушу фукнцияны карап көрсөк.

public function searchDiscs($searchText){

       $query = $this->createQueryBuilder('q')

           ->orWhere("q.name like :search")

           ->orWhere('q.description like :search')

           ->andWhere('q.active = 1')

           ->setParameter('search', '%' . $searchText . '%');

       return $query->getQuery();

   }

Демек searchDiscs() функциясы базага суроо талап жиберип, керектүү сөздү таап чыгат.

Мындан сыркары дагы көптөгөн класстар, функциялар ишке ашырлыган. Бирок мен эң маанилүүлөрүн гана көрсөттүм.

  1.  Интернет-дүкөндүн колдонуу көрсөтмөлөрү
  2.   Интернет дүкөндү башкаруу

Интернет-дүкөндү башкаруу  - ал эмне?

Интернет-дүкөндү башкаруу эки негизги маселени билдирет:

  1.  товар жөнүндө маалыматты топтоп даярдоо жана жарялоо
  2.  заказ жөнүндө маалыматты кабыл алуу жана иштетүү

Бул маселелер интернет-дүкөндүн же болбосо ишкана башкаруу системанын каражаттары менен ишке ашырылат.

Ал эми жогорудагы маселелерди ким аткарышы керек?

Албетте интернет-дүкөндүн администратору.  Эң башкы жана маанилүү рольду аткарган киши – администратор. Ар бир иштеп жаткан  интернет-дүкөндүн администратору болушу зарыл же эч болбогондо анын функцияларын аткарган киши.

Администратордун функциялары:

  1.  дүкөндү колдоо(товар кошуу, өчүрүү, өзгөртүү)
  2.  кардаарлар менен катташуу(телефон же онлайн коммуникатор аркылуу)
  3.  заказдарды көзөмөлдөө(админ панель аркылуу)
  4.  заказдарды жеткирүүсүн көзөмөлдөө
  5.  кардаарлардын төлөөсүн көзөмөлдөө(чоң интернет-дүкөндөрдө муну бухгалтерия кылат, бирок биздин дүкөндө өзүбүз кылабыз)

Эң маанилүү рольду администратор экенин билдик. Бирок администратордон дагы сырткары рольдор бар. Алар колдонуучулар. Колдонуучу экиге бөлүнөт: катталган колдонуучу жана конок. Катталган колдонуучу кошумча мүмкүнчүлүктөргө ээ. Мисалы, комментарий калтыруу. Бирок заказды баардык колдонуучу кыла алат.

  1.   Административдик панель

Товарларды, фильмдерди жана трейлерлерди кошуу администратор аткарат.  Негизи ушу амалдарды аткарыш үчүн админ панель колдонулат.  Административдик панельге жалаң гана администраторлор кире алышат.

4.1-сүрөт. Административдик панельге кирүү формасы

Жогоруда көрсөтүлгөн форма жалаң гана администратор үчүн. Администратор логин жана паролюн жазып, админ панельге өтөт. Админ панельде болсо, администратор өзүнүн милдетин толук түрдө аткарат. Төмөнкү 4.2-сүрөттө админ панельдин көрүнүшү.

4.2-сүрөт. Админ панель

Сүрөттө көрсөтүлгөндөй эле, кошуу жана тизме баскычтары көп. Демек, администратор, каалаган категорияга  белгилүү баскычты басып, басылган баскычка көрө амалды аткарала алат. Диск кошуу амалын карап кетсек. Төмөнкү 4.3-сүрөттө диск кошуу формасы көрсөтүлгөн.

4.3-сүрөт. Диск кошуу формасы

Жогоруда көрсөтүлгөн сүрөт, бир мезгилде кошуу жана редакциялоо формасы болушу мүмкүн. Эгер түзүү жана редакциялоо баскычы басылса, кайтадан ушул форма жүктөлөт, бирок боштуктардын ордуна өткөн формада жазылган маалыматтар көчүрүлөт жана редакцияласак болот.

Ал эми кошулган дисктердин тизмесин карасак.

4.4-сүрөт. Дисктердин тизмеси

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

4.5-сүрөт. Фильтрлөө формасы

Көрүнүп тургандай эле аты, активдүү, жанр, жана түрү боюнча фильтр процессин ишке ашырса болот. Мындай фильрлөө бардык тизмелердин баракчасында бар. Өзүңөр байкагандай админ панель жөнөкөй жана колдонуучуга эч кандай кыйынчылык алып келбейт. Демек, ар бир колдонуучу интуитивдик деңгээлде панель менен иштей алат.

  1.   Колдонуучулар үчүн интернет-дүкөн

Колдонуучу – интернет мейкиндигинде белгилүү бир маселени же функцияны аткарган адам же болбосо уюм.  Бирок биздин аймак интернет- маркетинг болгондуктан,  колдонуучу -  интернет аркылуу арзан жана ишенимдүү байланыш кура билүү мүмкүнчүлүгү жогоруу болгон адамдар.

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

4.3.1 Каттоо процесси.

 

4.6-сүрөт. Колдонуучуну каттоо формасы

Каттоону өтү зарыл процесс эмес. Интернет-дүкөндүн фукнцияларын баардык колдонуучу аткара алат. Бирок эгер колдонуучу каттоодон өтүүсүн каалаласа, ал эки этаптан өтүшү зарыл. Биринчиден, колдонуучу жогоруда көрсөтүлгөн формада тааларды толтурушу керек. Эгерде баардыгы туура толтурулса, колдонуучу жазган email адреске билдирме жиберилет. Ошо жиберилген билдирме далилдөө шилтемесин камтыйт. Шилтемеден өтүп колдонуучу катталган колдонуучу болуп эсептелет.

 

4.7-сүрөт. Колдонуучунун авторизация формасы

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

4.3.2  Каталог

4.8-сүрөт. Дисктердин каталогу

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

4.3.3 Заказ кылуу процесси

Колдонуучу керектүү дискти тапты, анан заказ кылгысы келди. Заказ кылыш үчүн, ал “Заказать” шилтемесин басат, анан 4.9 сүрөттө көрсөтүлгөн popup экранда пайда болот.

4.9-сүрөт. Диск кошулганын билдирген Popup3

4.10-сүрөт. Интернет-дүкөндүн кутучасы

 Popup-тын пайда болуусу, диск кутучага кошулганын билдирет. Сүрөттө көрсөтүлгөндөй, popup кутучага өтүү шилтемесин камтыйт. Эгер биз кутучага өтсөк, ал жерде тандалган диск бар болот.

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

4.11-сүрөт. Төлөм формасы

Бул формада сөзсүз түрдө баардык талаа толтурулушу керек. Колдонуучу өзүнүн жеке маалыматтарын жазып, сактоо баскычын басканда, администратордун почтасына билдирме келет. Администратор келген маалымат боюнча кардаар менен байланыш түзөт. Эгер заказ далилденсе, заказ курьерге айтылат, анан кардаардын адресине жеткирилет. Акы жеткирилгенде төлөнөт. Интернет дүкөндүн эң негизги мүмкүнчүлүктөру жогоруда айтылды жана көрсөтүлдү.

4.3.4 Онлайн көрүү функционалы

Дисктерди заказ кылуудан да сырткары фильмдерди көрүү мүмкүнчүлүгү бар.  Ар бир зыяратчы, каттоодон өтпөстөн, фильмдерди көрө алат.   Төмөндө фильмдердин каталогу. Сүрөттө көрсөтүлгөндөй, жанр боюнча фильтрлөөсө болот. Андан сырткары: актер, режиссер, өлкө, жылы боюнча фильтрлөө мүмкүнчүлүгү бар. Алардын баары фильмдин баракчасында жайгашкан. Эгер колдонуучу кааласа, колдонуучу фильм жөнүндө өзүнүн ой-пикирин калтырса болот. Албетте, аны жалаң гана катталган колдонуучулар аткара алышат.

4.12-сүрөт. Фильмдердин каталогу

Корутунду

 Иштин натыйжасында башында коюлган максаттардын баары ишке ашырылды.  Иштелип чыккан “Онлайн түрдө дисктерди сатуу жана фильмдерди көрүү ” системасы азыркы учурдагы «Cinemax» аттуу компаниянын максаттарын аткарууда. Интернет-дүкөндүн негизги функциялары жана 4-бөлүмдө көрсөтүлгөн башка мүмкүнчүлүктөр ишке ашыралган.

Веб сайт «Cinemax» компаниянын заманбап технологияларга өткөргөнгө, каталог жүргүзүүнү жеңилдетүүгө жана dvd дисктерди сайт аркылуу таратууга  ылайкташтырылган. Мындай мүмкүнчүлүктөргө жетүү максатында тыгыз байланышта болгон веб тиркемеси иштеп чыкты.

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

Колдонулган булактар

  1.  Жаңылыктар жана коллективдүү блоктор [Электрондук ресурс]. –Жетүү режими: http://habrahabr.ru/ 
  2.  Программалоо боюнча суроо жана жооп система[Электрондук ресурс]. – Жетүү режими: http://stackoverflow.com/
  3.  Sonata Project, set of several rich open source bundles based on Symfony2[Электрондук ресурс].-Жетүү режими: http://sonata-project.org/
  4.  Студия веб-дизайна и программирования “Эксперт Плюс”[Электрондук ресурс].-Жетүү режими: http://www.expertplus.ru/stati/stati-22.html
  5.  Все о PHP, MySQL и не только[Электрондук ресурс].-Жетүү режими: http://www.php.su/
  6.  Кристиан Дари, Эмилиан Баланеску PHP и MySQL: создание интернет-магазина = Beginning PHP and MySQLE - Commerce: FromNovicetoProfessional. — М.: «Вильямс», 2010. — ISBN 978-5-8459-1602-0, 640 б.
  7.  Symfony: The book/ License: Creative Commons Attribution-Share Alike 3.0 Unported License, version: Symfony 2: The Book-en-2011-08-01, 256 б.

Глоссарий

Термин

Аныктама

1

CkEditor

Веб-баракчаларда колдонулган WYSIWYG4-редактор (HTML-редактор)

2

ORM

Object Relation Mapping (Объект-реляциондук көрсөтүлүш)– Берилиштер базасынын объектке багытталган программалоо тилдердин байланышы

3

DVD

 Digital Video Disc(санариптик видеодиск)

4

AJAX

Asynchronous Javascript and XML(асинхрондук JavaScript жана XML)Браузер менен веб-сервер арасында “фондук” режиминде маалымат алмашуу технологиясы

2 DependencyInjection – кызматтарды түзүүнү башкарган php объект.

3 Popup – маалымат камтыган калкыма терезе

4 WYSIWYG - What You See Is What You Get(эмнени көрсөң, ошону аласың)


 

А также другие работы, которые могут Вас заинтересовать

68122. О.Донченко «Лісовою стежкою» 119.5 KB
  Як мандрує по гаях з чарівним пензлем у руках все розмалює на путі берізки стануть золоті І ми її уклінно просим: заходь у гості щедра осінь. Заходить дівчинкаОсінь з корзинкою в якій завдання для дітей. Звучить мелодія Осінь Скільки поезії в цьому золотавосонячному слові і скільки...
68123. Ліс - наше багатство 80.5 KB
  Вчити аналізувати робити висновки на основі власних спостережень за довкіллям зрозуміти значення лісу; розвивати спостережливість за рослинним тваринним світом; виховувати бережливе ставлення до всього живого. У лісу просили поради допомоги співчуття. Пізнаєш красу і користь лісу гаю діброви.
68124. Дерева нашого лісу 107.5 KB
  Мета: Узагальнити та розширити знання учнів про дерева наших лісів про найвищі і найстаріші дерева планети деревасимволи значення дерев у житті людини. Обладнання: плакати екологічного змісту кросворд деревозагадка таблиці деревасимволи що дає людині дерево лист від друзів природи.
68125. Хвойні ліси – скарб рідного краю 51 KB
  Хід заходу 1 учень: Цей ліс живий. 2 учень: Малі озерця блискають не злісно Колише хмара втомлені громи. Хіба можна кривдити таку красу Роздивляємось виставку репродукцій картин відомих художників Учитель: Діти уявіть якби дерева зникли що тоді сталося б Учні висловлюють свої...
68126. Літературна гра «У світі казок» 71 KB
  А чи замислювалися ви коли-небудь над тим звідки беруться казки Ось як цікаво на це запитання відповів відомий фінський письменник казкар Закаріас Топеліус Як настане літо вийдіть дуже рано в поле коли роса лежить на траві там блищать тисячі казок мов діаманти. Потім на берег моря де на воді граються...
68127. Караюсь, мучуся… Але не каюсь! 76 KB
  Діючі особи: Тарас Шевченко Фельд’єгер конвоїр Сидорчук вартовий в Орській фортеці Андрій Козловський засуджений Мєшков офіцер Лаврентьєв писар Друг Шевченка засуджений Абдрахман киргиз Кульжан донька Абдрахмана Бутаков офіцер Тищенко солдат Фундуклей губернатор Києва Думки Шевченка читці поезій...
68128. Слова в вірші – і рай в душі 78.5 KB
  Мета: поглибити учнівські знання з теорії літератури ідейнохудожнього аналізу поетичного твору удосконалювати вміння виразного читання; розвивати поетичне мислення образну уяву; виховувати любов до художнього слова та до рідної природи. Я зачитуватиму поетичні рядки а ви повинні підставити...
68129. Інтелектуальна гра «Літературна веселка» Ти завжди в серцях людей, Тарасе! 43.5 KB
  Шевченка розвивати логічне мислення виразне читання виховувати повагу до Шевченкового слова та цікавість до вивчення його творчості. Тарас Шевченко Тарас Це бунтівне пророче ім’я знайоме не тільки українцям а й усьому світові. Шевченко це криниця з джерельною водою яка втамовує духовну спрагу народу.
68130. Знайомство з країною Логікою 28.5 KB
  Сьогодні діти ми відправляємось у незвичайну подорож. Діти ходять до школи найкоротшим шляхом але можуть годинами блукати різноманітними лабіринтами. Діти імітують посадку на автобус і їзду. Ось компанія яка У якій послідовності сидять діти Боря Петрик Юрко Віра Стас Іра.