Знакомство с п оек ктом
Знакомство с п оек ктом
Намнужнопридуматьпроект,надкоторыммыбудемработать。Это дово ол но неп оста зада а。Соднойстороны,проектдолженбытьдостаточнобольшим,чтобыпоказатьвсевозможностиSymfony。欧宝娱乐app下载地址Сдругойстороны,нуженнебольшойпроект,чтобынамненаскучилореализовыватьпохожуюфункциональностьпонесколькораз。
Определение党中央党中央党中央党中央党中央党中央党委
Былобынеплохо,еслибыпроекткаким——тообразомбылсвязансSymfonyико欧宝娱乐app下载地址нференциями,таккаккнигадолжнабытьопубликовананаконференцииSymfonyCon 2019вАмстердаме。Какнасчётгостевойкнигиили ли и р д'ор, как мы наз з - ваем её по-ф - а ан л з зск ?Мненравитсяэтостароедоброеощущениеразработкигостевойкнигиг2019воду!
Нашпроектпредназначендлясбораотзывовоконференциях。Наглавнойстраницеразместимсписокконференций。Настраницекаждойконференциивыведемполезныекомментарии。Комментарийбудетсостоятьизнебольшоготекстаифотографии(пожеланию)。Кажется,ярасписалвсетребования,чтобыначатьразработку。
Впроектбуде з входить нескол коприложений.Классическоевеб——приложениесиспользованиемHTML, APIиSPA -приложениедлямобильныхустройств。
Обучение на п п актике
Мы и им мс с, ко о и да мы и то т -то елаем。Только так, никак ина а а и。Конечно,читатькнигуоSymf欧宝娱乐app下载地址ony——этохорош,оноразрабатыватьприложениенасвоёмкомпьютерепоходучтениякниг,игораздолучше。Этакнига-нечтоособенно,епотомучтобылосделановсёвозможное,чтобывымоглиповторятьто,чтовнейописано:писатькодидостигатьтехжерезультатов,чтоия,когдаразрабатывалприложениеусебя。
Вкнигесодержитсявеськод,которыйвампредстоитнаписать,атакжевсекомандыдлявыполнения——однимсловомвсё,чтобыполучитьготовоеприложение。Все строк ко кода на с о ои места。Все нужные команды прописаны。Этовсёуместилосьвэтойкнигеблагодарятому、чтовсовременныхприложенияхнаSymfonyоченьм欧宝娱乐app下载地址алошаблонногокода。В осно са ном мы б од ем писат т код, с о занн ос с——бизнеслогикойпроекта。Всёостальноепобольшейчастиужесделанозанас,либоавтоматическигенерируется。
Итоговая диа амм ма структуры п оекта
Несмотрянато,чтонашпроекткажетсяпросты,ммынестанемсоздаватьприложениеуровня“Hello World”。Этозначит,чтомынеограничимсятолькоиспользованиемиPHPвзаимодействиемсбазойданных。
Речьидётосозданиипроекта,скоторымвыстолкнетесьвреальностисовсемивытекающимисложностями。Неверите吗?Посмотритенаокончательныйвариантинфраструктурыпроекта:
Одноизглавныхпреимуществиспользованияфреймворка-небольшоеколичествокода,необходимогодляразработкиподобногопроекта:
- 20 php -классов в ди екто ии
src /
дл работы са та; - 550 ло и и ес ски и о строк php -кода (lloc) по да а анн н и мPHPLOC;
- 40строкконфигурационныхданныхф3вайлах(сиспользованиематрибутовиYAML)преимущественнодлянастройкиархитектурыбэкенд——части;
- 20строкконфигурацииинфраструктурыдляразработки(码头工人);
- 100年строкконфигурациидляпродакшен——инфраструктуры(Platform.sh);
- 5 ста ано о ле еме енн о о окружения。
Готовы к та акому ис сп от ани ?
Получение исходного кода п оекта
Ябымогпостаринкеприложитьккнигекомпак——дтисксисходнымкодом,такведь吗?Но как нас - с - с - с - с - с - с - с - п - с - с - с - с - с - с - с - и ?
Клонируйтеdidn ' t епозито о и к к о к о кни и ина с с о о комп т тер:
1
$欧宝娱乐app下载地址Symfony新——版本=6.2-1——书留言簿
Этотрепозиторийсодержитвеськод,которыйвстречаетсявкниге。
Обратите и нима ани и, с то мы испол с с ем ком манду欧宝娱乐app下载地址symfony的新
вместоgit克隆
,потомучтоонанетолькопозволяетклонироватьрепозиторий,которыйнаходитсяворганизации快节奏的生活
на GitHub по ад есуhttps://github.com/the-fast-track/book-6.2-1
.Такжеэтакомандазапускаетвеб——сервериконтейнеры,применяетмиграциибазыданных,загружаетфикстурыитд。Послевыполнениякомандыбудетзапущенсайт,которыйможносразуначатьиспользовать。
Полученныйкодполностьюсоответствуеттому、которыйприсутствуетвкниге(используйтеуказанныйвышеURL -адресрепозитория)。Крайнесложновручнуюподдерживатьодинитотжекододновременноивкниге,иврепозитории。Я п о талс анее, но без о спе о。Я бы даже сказал, с то о о невозможно。Особенновкнигах,подобнойэтой,гдепоэтапнорассказывается,какразрабатыватьсайт。Темболееучитывая,чтокаждаяглавазависитотпредыдущей,иочередноеизменениеможетнесамымлучшимобразомотразитьсявовсехпоследующихглавах。
К с а аст т, Git-репозит т и и у дл К ни иавтоматическигенерируетсяиз содержимого кни и и。Да, Да, вы п а а - ил но пон ли。Мненравитсявсёавтоматизировать,поэтомуянаписалскрипт,которыйсчитываетвсюкнигуисоздаётGit -репозиторий。Утакогоподходаестьприятныйпобочныйэффект:приобновлениикнигискриптничегонесоздаст,еслибудутпротиворечивыеизменения,либоеслиязабудуобновитьнекоторыеинструкции。,эВсёвернотоBDD (Book-Driven开发илиразработкачерезнаписаниекниги)!
Навигация по о коду
,Болеетогорепозиторий——этонетолькоокончательнаяверсиякодавветке主要
.Скриптвыполняетлюбоедействие,описанноевкниге,ивконцекаждогоразделафиксируетизмененияврепозитории。Вдобавоконпомечаеткаждыйшагиподшаг,чтобыоблегчитьпросмотрсоответствующегокода。Разве т то н не до о о о о о?
Есливамлень,товыможетеполучитькоднужногошагапоеготегу。,Напримересливыхотитепосмотретьипопробоватьвдействиикодвконце10шага,выполнитеследующуюкоманду:
1
$欧宝娱乐app下载地址Symfony book:结账
Какиприклонированиирепозитория,вместокомандыgit checkout
мыиспользуем欧宝娱乐app下载地址symfony的书:结账
.Благодаряэтойкоманде,внезависимостиоттекущегошага,увасбудетполноценноработающийсайтнауказанномшаге。Имейтеввиду,вседанныеикод,атакжеконтейнерыбудутудаленыпослевыполненияэтойоперации。
Вы также можете пере т т т на л о бо к подшаг:
1
$欧宝娱乐app下载地址Symfony book:checkout 10.2
Повторюсь:оченьрекомендуюсамостоятельнописатькод。Ноесливыстолкнулисьсзатруднениями,попробуйтесравнитьвашкодстем,чтовкниге。
Неуверены,чтовсёсделалиправильновподшаге10.2 ?Сравните с с а а им кодом:
1 2 3 4
$Git diff step10 -1…step10 -2#对于第一步的第一个子步骤:$Git diff step9…step10 -1
Хотите ко на а а а л л б л с создан ил ли из ли измен ?
1
$git日志——src /控制器/ ConferenceController.php
Вытакжеможетепросматриватьизменения,тегиикоммитыпрямонаGitHub。Этоотличныйспособскопироватькод,особенноесливычитаетебумажноеизданиекниги!