24 | | |
25 | | |
26 | | |
27 | | **[https://develop.finki.ukim.mk/projects/SaveSpace/browser Извор - SaveSpace]** |
| 29 | {{{#!box type=todo |
| 30 | Корегирано |
| 31 | }}} |
| 32 | Структурата на датотеките во Laravel е по избор корисникот но за да е во тек со други апликации и разбирлива за другите добро е да се воздржиме на класичната MVC структура. Model-View-Controller (MVC) [https://www.tutorialspoint.com/mvc_framework/mvc_framework_introduction.htm] е модел кој ја дели апликацијата на три главни логички компоненти: модел, приказ и контролер. Секоја од овие компоненти е изградена за да се справи со специфични развојни аспекти на апликацијата. MVC е една од најчесто користените индустриски стандардни рамки за развој на веб за креирање скалабилни и проширливи проекти. |
| 33 | |
| 34 | Модел |
| 35 | Компонентата Модел одговара на целата логика поврзана со податоци со која работи корисникот. Ова може да ги претставува или податоците што се пренесуваат помеѓу компонентите Приказ и контролер или кои било други податоци поврзани со деловната логика. На пример, објектот Customer ќе ги преземе информациите за клиентот од базата на податоци, ќе манипулира со нив и ќе ги ажурира податоците назад во базата на податоци или ќе ги користи за прикажување податоци. |
| 36 | |
| 37 | Приказ |
| 38 | Компонентата View се користи за целата логика на UI на апликацијата. На пример, приказот на клиентите ќе ги вклучи сите компоненти на корисничкиот интерфејс, како што се текстуални полиња, паѓачки склопки, итн. со кои ќе комуницира конечниот корисник. |
| 39 | |
| 40 | Контролер |
| 41 | Контролерите дејствуваат како интерфејс помеѓу компонентите на Model и View за да ја обработат целата деловна логика и дојдовните барања, да манипулираат со податоците користејќи ја компонентата Model и да комуницираат со Views за да го прикажат конечниот излез. На пример, контролорот на клиентите ќе се справи со сите интеракции и влезови од Приказот на клиентите и ќе ја ажурира базата на податоци користејќи го моделот на клиентите. Истиот контролер ќе се користи за прегледување на податоците на клиентот. |
| 42 | |
| 43 | Во Laravel Root directory се нарекува главниот директориум каде се наоѓа целиот изворен код од апликацијата. App апликации |
| 44 | директориумот на апликацијата го содржи основниот код на апликација. Директориумот Config, како што имплицира името, ги содржи сите конфигурациски датотеки на апликација. Database директориумот ги содржи миграциите на базата на податоци, вредностите кои се запишуваат за моделот и семиња за тестирање на датабазата. Public директориум ја содржи датотеката index.php, која е влезна точка за сите барања што влегуваат во апликацијата и го конфигурира автоматското вчитување. Во овој директориум се сместени и сликите како и интерфејсите на апликацијата. Resources директориумот ги содржи фронтенд делот т.е. интерфејсите на апликацијата кои ќе бидат рендерирани во соодветен код за приказ на прелистувач, како на пример некомпајлирани скрипти. Во овој директориум се сместени и сите јазични датотеки. Директориумот Routes ги содржи сите дефиниции за рути за апликацијата. Иницијално, неколку датотеки со рути се вклучени со Laravel: web.php, api.php, console.php и channels.php. Датотеката web.php содржи рути кои ги поставува во групата веб-базиран софтвер, која обезбедува контрола на сесија, заштита од CSRF и шифрирање на колачиња. Во мојот пример сите рути се дефинирани во web.php датотеката. |
| 45 | .php е местото каде што можете да ги регистрирате сите канали за емитување настани што ги поддржува вашата апликација. Storage директориумот за складирање ги содржи сите компајлирани шаблони како и конфигурацијата за зачувување на датотеки. Директориумот на апликации може да се користи за складирање на сите датотеки генерирани од вашата апликација. Рамковниот директориум се користи за складирање на датотеки и кешови генерирани од рамка. Конечно, директориумот за дневници ги содржи датотеките за дневници на вашата апликација.Vendor директориумот ги содржи сите зависности од Composer [https://getcomposer.org/] кој што претставува управуавач на зависносни пакети во PHP. Поголемиот дел од вашата апликација е сместена во директориумот App кој содржи дополнителни директориуми како што се Console, Http и Providers. Во директориумот Console додадов clearAll класа која што како една команда ми заменува четири команди во исто време за чистење на кеш и конфигурација на апликацијата. Директориумот Http ги содржи контролерите, конфигурацијата за автентикација и валидациските класи за моделите. Речиси целата логика за справување со барањата кои влегуваат во апликацијата се запишани во овој директориум. Директориумот Models ги содржи сите класи на Eloquent модели. Eloquent ORM [https://laravel.com/docs/8.x/eloquent] вклучен во Laravel обезбедува едноставна имплементација за работа со базата на податоци. Секоја табела со база на податоци има соодветен „модел“ кој се користи за интеракција со таа табела. Директориумот Notifications иницијално не постои, но се креира автоматски ако ја извршите командата Artisan make:notification. Истиот ги содржи сите известувања што ги испраќа апликацијата, како што се едноставни известувања за настани што се случуваат во апликацијата. Во конкретниот пример праќам нотификација за промена или заборавена лозинка, верификација на кориснички профил, промена на е-адреса како и OTP код за верификација на најавата преку маил. |