Loading...
ZvetanIG avatar ZvetanIG 907 Точки

Колега не е ли по-логично try-catch да са в BookingManager::bookRoom.  На този метод работата му е да прави резервациите и ако има проблеми трябва да ги обработва и да изписва различни съобщения според случая.

Никъде не видях последната, част от домашното, където трябва да филтрираме стаите по различни критерии.

Друг съвет, който мога да ти дам е да използваш

function __autoload($className)
{
    include_once("./" . $className . ".class.php");

по този начин няма да ти се налага да инклудваш всеки клас, по отделно.

 

Ето и моя вариант на домашното. Доста писане падна.

ДОМАШНО

11
19/10/2014 20:27:25
GoShow avatar GoShow 595 Точки

Както винаги Цецо Кърти Мивки! :) Имам една поправка и една препоръка. Недоглеждане е за класа Quest, който трябва да е Guest, също можеш да използваш $lastName вместо $secondName(това си е изцяло твоя работа, просто мисля, че обикновено се ползва фамилия, а second name е по-скоро за бащино). Препоръката е константи за броя на леглата в конструкторите на съответните стаи вместо магическите числа 1, 2 и 4. Иначе, честито на абонатите ти :)!

3
19/10/2014 21:50:36
ZvetanIG avatar ZvetanIG 907 Точки

Колеги, благодаря за препоръките.

А относно Quest и Guest.  Така се получава, когато се гледа филм и се решават задачи едновременно. smile.

1
arsoman avatar arsoman 419 Точки

Ето и моето решение, но без последната подточка със звездичка, там вече се поуморих и ще мина на други задачи.

Homework-PHP-OOP

2
petrovaliev95 avatar petrovaliev95 358 Точки

Здравейте, колеги

Включвам се малко късно, но доста писане падна по това домашно.
Не успях да направя само последната подточка на задачата.

Hotel Reservation System

Ще се радвам на някакъв feedback.

 

Поздрави, Даниел

5
19/10/2014 21:26:24
Ivaylo.Il avatar Ivaylo.Il 226 Точки

Не знам за вас, но само на мен ли ми се струва, че условието е малко кофти написано? Трудно разбирам, къде се използват някои неща, а и Sample Input не ми помага много... или може би аз съм малко по-бавен :)?

2
petrovaliev95 avatar petrovaliev95 358 Точки

Да кофти е написано, не се подразбира, трябва да се замислиш. Погледни моето решение или по-точно класовете за различните стаи.Мисля, че ще ти стане по-ясно.

5
Lili26 avatar Lili26 48 Точки

Здравейте колеги. Задачката ми беше много интересна, но и да ви кажа честно доста време ми отне. Някак като че ли синтаксиса на езика ме затрудни най-много. 

Приемам всякакви коментари, критики и др.

Hotel Reservation System

2
RoYaL avatar RoYaL Trainer 6849 Точки

public function setReservations($reservations)

 

Този метод не е ли излишен? Мисля, че това което искаш да постигнеш манипулирайки резервациите се случва в addReservations(), а сетърът ти е излишен, даже опасен :)

P.S.: Прието е по PSR-2 стандарта, namespace-овете да не обграждат кода т.е. да незапочват и завършват с къдврави скоби, а със точка и запетая ";".

Идеята на { } блока е, в случай че имаш два неймспейса в един файл, което по PSR autoloading-а не трябва да се допуска.

namespace RoomData;

class Room

{

     public function __construct() { }

}

1
20/10/2014 16:12:38
Lili26 avatar Lili26 48 Точки

Здравей, RoYaL.

Относно {} и namespace- напълно съм съгласна с теб. Може би е от недоглеждане от моя страна.

Що се отнася до сетването на резервацийте -най-вероятно си абсолютно прав. Имах проблем с пълненето на ареята с резервации и препрявах целия клас няколко пъти. Оставих го така, защото ми отне време да разбера къде ми е грешката и да накарам всичко да заработи. Признавам, че PHP ми е много слаба страна, но като ми остане време след изпита ще седна да си поиграя с тази задача. 

Благодаря ти за отделеното време. :)

1
Filkolev avatar Filkolev 4482 Точки

Здравейте,

Темата е от предишния випуск, но няма смисъл да пускам нова, затова пиша тук.

Получих преди малко коментар към домашното от лекцията и се получава малко сблъсък на виждания меджу моето мнение и това на проверяващия. Той/тя казва:  "Стаята не трябва да проверява дали резервациите и се overlap-ват. Това е работа на BookingManager-а."

Според мен точно в стаята би следвало да се случва тази проверка. Стаята съдържа в себе си резервациите и тя е компетентна да прецени дали една резервация е валидна, т.е. да провери за овърлапване. Ако енджина го върши това, излиза, че той трябва да има достъп и да ползва резервациите на стаята и не ми се струва логично проверката да се прави там. Аз както видам нещата, енджина казва на стаята "добави си резервация" и тя го прави както си знае, като в нейния метод за добавяне на резервация тя проверява има ли конфликт със съществуваща или не.

Енджина може да проверява други неща - съществува ли такава стая, валидни ли са датите на резервацията (от гледна точка крайната дата да е след началната) (едит - това дето го задрасках пък трябва да си е работа на самия клас резервация) и такива неща.

Ако може някой по-опитен да разплете логиката, защото в това отношение сме си новаци.

П.С. Едно благодаря за колегата, който опита да ми обясни за spl_autoload-a. Не ми е все още много ясно, ще опитам по-късно пак да схвана как точно работи.

1
20/02/2015 13:12:09
Можем ли да използваме бисквитки?
Ние използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Можете да се съгласите с всички или част от тях.
Назад
Функционални
Използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Използваме „сесийни“ бисквитки, за да Ви идентифицираме временно. Те се пазят само по време на активната употреба на услугите ни. След излизане от приложението, затваряне на браузъра или мобилното устройство, данните се трият. Използваме бисквитки, за да предоставим опцията „Запомни Ме“, която Ви позволява да използвате нашите услуги без да предоставяте потребителско име и парола. Допълнително е възможно да използваме бисквитки за да съхраняваме различни малки настройки, като избор на езика, позиции на менюта и персонализирано съдържание. Използваме бисквитки и за измерване на маркетинговите ни усилия.
Рекламни
Използваме бисквитки, за да измерваме маркетинг ефективността ни, броене на посещения, както и за проследяването дали дадено електронно писмо е било отворено.