Nüks için basit pratik Kullanılabilir PHP Mantık

2 Cevap php

Ben bu soruyu sormak befor, senden bir ricam var,

Bazı gerçek cevabı vardır kadar aşağı .... bu soruyu LÜTFEN vermezsin LÜTFEN!

I have submitted this previously as the following question http://stackoverflow.com/questions/579892/php-calendar-recurrence-logic

Birisi aşağı olarak ve zaten cevap olduğunu söyledi çünkü, kimse cevap verecektir

I know there are similar posts here... http://stackoverflow.com/questions/123793/design-question-how-would-you-design-a-recurring-event-system http://stackoverflow.com/questions/85699/whats-the-best-way-to-model-recurring-events-in-a-calendar-application

ama onlar düz PHP MySQL dışında başka bir çerçeve veya araçları / komut dosyalarını kullanarak OLMADAN bir yinelenen takvim kurulumu için mantık, pratik, basit ve gerçek dünya, örneğin benim isteği cevap yok

Ben bu yazıda http://martinfowler.com/apsupp/recurring.pdf iyi olduğunu kabul ediyorum, ama ben onu anlayamıyorum o kadar soyut ...

Birisi bu konuda bana yardımcı LÜTFEN eğer ... Ben sadece bu ... ama bu benim kendi beyaz sen-ve I noktada bunu anlamaya OLACAK balina olduğunu, diğer "bu yapmış Sistemleri" olduğunu biliyorum yol boyunca bazı yardım gibi

ve diğer mesaj olsa bile bu bir soru sormak için hala ok ve çok "çaylak" hiçbir soru olduğunu sss adlı aracılığıyla benim anlayış oldu

thx

The question is: how do I build a recurring calendar using PHP and MySQL?

2 Cevap

Sen Fowler makaleyi anlamak için çaba gerekir. Bu gerçekten kapsamaz.

İşin gerçeği bu zor bir sorun olduğunu, olduğunu. "Fly" mantığı düzenleme kullanıcıların gerçekten yapmak istediğim bir şey değil. Onlar örneğin ayın ikinci Çarşamba, hesaplamak için nasıl anlamaya zorunda istemiyorum - bir programcı onlar yapmak isteyeceksiniz ne beklenen ve bunun için bir kural sağlamış gibi Aksine, onlar istediğiniz.

Gerçek sorunun MySQL nüks modelleme yatıyor gibi geliyor. Sen bir veritabanında saklanır ve daha önce Yığın taşması kaplı olabilir ki, Google's spec kullanabilirsiniz. Fowler parça da bir RDBMS temsil edilebilir iyi tanımlanmış sınıflar açısından bazı iyi başlangıç ​​noktaları sağlar.

Bu zor bir sorun. SO başarılı olmak istiyor ise, biz sadece akışı size yol açabilir. Biz içmek için sizi zorlayamaz.

Takvim mantığı yinelenen bir pratik, gerçek dünya Örneğin, PDA veya eşdeğeri bakmak.

Ben birkaç yıl önce bir intranet uygulaması bir takvim oluşturmak için var ve temelde benim Palm seçenekleri yinelenen ne vardı kopyalandı. Bu insanlara mantıklı, bu yüzden bir başarı değerlendirilecektir. Ama veritabanında gerçek temiz depolamak değil. Bir şeyler ters baktı eğer benim kod veri şeyleri düzeltmek için çeşitli kurallar ile birlikte tutarlı dikkatli kontroller sürü ile sona erdi. Ben onu geliştirmek gibi biz aktif olarak kullanmakta olduğunuz yardımcı oldu. :-)

Bildiğim kadarıyla depolama gitti, takvim girişi, bir yinelenen dizi ya da değil bir parçası olduğunu belirtilen bir bayrak çıkıyor. Eğer o olmasaydı, olmayan bir yinelenen giriş oldu. Eğer öyle olsaydı, o zaman bu girişinde serisini kırmak için bunlardan biriydi birkaç seçenek vardı düzenleme. Tekrarlanan girişleri ayrı öğeler olarak veritabanına konuldu; Bu performans nedenleriyle yapıldığını denormalizasyon bir tür oldu. Diğer şeyler arasında, bu takvim kontrol etmek istediği diğer kod yinelenen öğeler hakkında endişelenmenize gerek yoktu anlamına geliyordu. Biz her zaman serisi için bir bitiş tarihi gerektiren tarafından "bitmeyen" sorunu çözüldü.

Aslında farklı ayarları kontrol etmek için UI bazı JavaScript katılan yinelenen öğeleri kurma. DB giriş yinelenen adım (örneğin 1 hafta, 2 hafta, ...) ve herhangi bir varyasyon (haftalık siz diyelim (..., örneğin, günlük, haftalık) nüks kapsamını göstermek için değerleri bir arada oldu "Pazartesi, Çarşamba, Perşembe, her hafta").

Son olarak, ben bunu tamamen ele dilimi ve gün ışığı tasarruf uygulamak için var hiç bazı mantık vardı. Eğer vardiya seçici uygulamak için izin zorunda çünkü bu zordur. Bazı takvim öğeleri son kullanıcıya yerel saat kalacak,, diğerleri bir yere sabit ve ya da gün ışığından yararlanma ile vardiya olmayabilir. Ben bu sorun üzerinde bir düzeltme var önce bu şirketten ayrıldı.

Ben tüm diğer soruları görmedim çünkü Son olarak, ben bu yanıtlarken ediyorum. :-) Ama bu PDF okumak ve anlamak gidin.