
- •Аннотация
- •Мазмуну
- •Интернет дүкөн: иштөө принциби жана колдонулушу
- •Интернет дүкөндүн жалпы схемасы
- •Интернет аудитория
- •Интернет дүкөндүн функционалдык мүмкүнчүлүктөрү
- •Интернет дүкөндү иштеп чыгуу процесстердин фазалары.
- •Колдонуулучу технологиялар
- •Долбоорлоо методун аныктоо
- •Программалоо тилин тандоо
- •Модель – көрүнүш – башкаруу
- •Фрэймворк
- •Жалпы түзүлүш
- •Проекттин файлдык архитектурасы
- •Берилиштер базасы
- •Коддук реализация
- •3.4.1 Кутуча, BinController.Php
- •Интернет-дүкөндүн колдонуу көрсөтмөлөрү
- •Интернет дүкөндү башкаруу
- •Административдик панель
- •Колдонуучулар үчүн интернет-дүкөн
- •4.3.1 Каттоо процесси.
- •4.3.2 Каталог
- •4.3.3 Заказ кылуу процесси
- •4.3.4 Онлайн көрүү функционалы
- •Колдонулган булактар
- •Глоссарий
Жалпы түзүлүш
3.1-сүрөт.
MVCде
түзүлгөн тиркеменин иштөө принциби
Үч деңгээлге бөлүштүрүү болгондуктан тиркемелер структураланууга ээ болушат. Код түшүнүктүү жана аны өзгөртүүгө жеңил болот. Иштеп чыгуу ийкемдүү боло баштайт. Мисал катары, эгер иштетилип жаткан тиркеме жалаң гана кадимки браузерледе иштебестен портативдүү компьютерлерде дагы иштөөсү керектелсе, дагы бир view (портативдик компьютерлер үчүн ) түзүш керек. Мен түзүп жаткан сайттын түзүлүшү MVC паттерндин негизинде түзүлгөн.
Проекттин файлдык архитектурасы
Баардык веб-долбоорлор төмөнкү элементтерден турат:
Берилиштер базасы, мисалы MySQL же PostgreSQL
Статикалык файлдар(HTML, сүрөттөр, JavaScript файлдар, стильдер жадыбалдары ж.б. )
Колдонуучулар же администраторлор жүктөгөн файлдар
PHP класстар жана китепканалар
Сырттан келген китепканалар(башка иштеп чыгуучудан келген скрипт)
Batch файлдар (буйрук сап аркылуу иштетилген скрипттер)
Окуялар журналы( же болбосо логтор, тиркеме же сервер тараптан жүргүзүлгөн отчеттор)
Конфигурация файлдары
3.2-сүрөт.
Файлдар архитектурасы
Долбоордун директориялары
app/ - эң негизгиси конфигурацияларды камтыйт жана ошонун ичине routing кирет
src/ - проектин коду, bundles
vendor/ - китепканалардын жыйындысы
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 катарында, кадимки скрипттер чыгышат.
app/console – тиркемеге CLI(буйрук сабы) аркылуу жетүү
app/app.php – тиркемеге web аркылуу жетүү
app/app_dev.php – тиркемеге web аркылуу иштеп чыгуучу режиминде жетүү
Жогоруда айтылган баардык фронт контроллерлер бир негиз боюнча түзүлүшөт:
Жүктөөчү класстарды каттоо скриптин кошуу жолу менен autoload (автоматтык түрдө класстарды жүктөө) тураланат;
кээ бир учурда класстардын кэши колдонулат (көп колднулган класстар);
Өзөк иштетилет;
Өзөк(Kernel) – бул Symfony системанын движогу. Анын негизги максаты иштөө чөйрөсүн демилгелөө.
Өзөк AppKernel.php app/ директориясында жайгашкан.
app/ директориясын тиркемелерди иштеп чыгуу учурунда биз конфигурацияларды жана роутингти өзгөртүү үчүн колдонобуз. Ушу директория кэш жана логторду камтыйт(app/cache, app/logs), андан тышкары app/Resource тиркеме деңгээлиндеги шаблондорду камтыйт.
3.3-сүрөт.
src/
-
бандлдар директориясы
Symfony фрэмворктун жардамы менен иштеп чыгуунун эң негизги өзгөчөлүгү – бул bundle системасы. Бандл – белгилүү бир максатка жетүү үчүн колдонулган скрипттердин жыйындысы(php, js, html, css ж.б.).
Symfonyнин өзгөчөлүгү – “баардык нерсе bundle”, тиркеме, жадагалса өзөктүн функционалы. Башкача айтканда, биз биринчи кезекте бандл түзүшүбүз керек.
3.3 сүрөттө көрсөтүлгөндөй, src/ директориясы жалаң гана бандлдарды камтыйт.
Бандлдын структурасын карап кетсек:
Admin/ - админ панелине тиешелүү класстарды камтыйт(бандл түзүүдө болбойт, колдонуучу тараптан түзүлө турган директория).
Controller/ - бандлдын контроллери
DependencyInjection1 – кызматтарды камтыйт
Entity – берилиштер базасы менен иштөөчү класстарды камтыйт
Form – формаларды түзүгө php скрипттерди камтыйт
Resources/views/ - көрсөтүү шаблондорун камтыйт(мисалы Hello/index.html.twig)
Resources/public/ - веб-тиркеменин иштөөсүнө керектүү бөлүкчөлөрдү камтыйт, бирок код болуп саналбайт (сүрөт, css ж.б.). web/ директориясына assets:install буйругу аркылуу көчүрүлөт.
Tests – бандлдын тесттерин камтыйт
Symfony сунуштаган файлдык архитектура MVСнин баардык мыкты идеяларын өзүнө тартып алгандыктан, андан тышкары ийкемдүүлүк жана конфигурацияны өзгөртүү жөндөмдүүлүгү болгондуктан менин дипломдук ишиме негизки каркас болуп тандалды.