Precisa de ajuda - brainstorming php scheduler class

8

Eu nunca escrevi uma classe php antes do zero. Mas acho que você precisa começar em algum lugar, certo? Eu tenho uma ideia, mas preciso de ajuda com a lógica. Por favor diga-me o que você pensa. Abaixo está uma abreviação obviamente. Nas etapas de planejamento.

Class - 
 -> type (recurring, single, day)
 -> Recurring days (4,2,3,4,1,2....etc. for odd schedules- need even pairs)
 -> Shift Type (onshift, vacation, medical, etc...)
 -> Emp Id
 -> Start
 -> End
 -> Location Id
 -> Hours per day
 -> Day start time

 get schedule ( by account/location/company/unit/crew/individual )
      select single entries
      separate array into days (1 day) increments
      if single entries have linking day entries, replace array with day entry information
      return mysql array of days for the time period;

 set schedule ( dates, emp id)
      if recurring
          if already exisits || conflicts with existing
              error
          create recurring template in db table
          create single db entries using recurring days for 1 year
      if single
          if date is between dates already in db || more than 1 year out
              error
          else
              insert into db
      if day
          if no existing single range
             error
          else
             insert into db under day table, with id linking to id of existing single.

 remove recurringOnly(emp id)
      delete all entries with recurring id

 remove all entries( from this date forward, emp id )
      delete entries with start date > date

 cronUpdate( cron start / end dates)
      if cron start / end dates
           delete anything with dates bigger than nextUpdate (to make sure no errors)
           select recurring db entries with nextUpdate between cron start/ end
           insert into db the next set of "recurring days" for the employee
           update nextUpdate date for employee
      else - error

fonte
+1 para pseudocódigo. No entanto, você pode ser mais específico sobre com qual lógica procura ajuda?
Jordan
Logan, parabéns a você por querer fazer isso da maneira correta e realmente fazer um brainstorming do seu processo. Eu amo usuários como você. Mas com o que exatamente você precisa de ajuda?
Levi Morrison
Estou nervoso com a programação, onde eu divido em incrementos de dia. Eu estou pensando que poderia ser bastante intensivo em CPU, especialmente ao obter agendas para todo um departamento de pessoas. Além disso, muitos dados serão transferidos para a página. Mas não vejo outra maneira de atualizar as informações diárias ajustadas.
@Logan: Você pode criar um diagrama de classe UML para sua classe? Isso seria melhor ajuda.
Victor

Respostas:

1

Os primeiros dados que você listou podem ser os atributos. Lembre-se de definir os atributos para private e o método getters and setters public. Em seguida, você pode criar os métodos com base nesses algoritmos que você já possui. é uma boa ideia codificar sua turma em um único arquivo com o mesmo nome da turma para ajudar a organizar seu projeto.

Vencedor
fonte