Ben birçok farklı dosya formatlarında raporlar keyfi bir miktar oluşturmak için ihtiyaç var. Formatlarının çoğunu ben çıkışını şablon Smarty kullanmak mümkün duyuyorum. Ancak, Excel ve PDF çıktısı şeyler karmaşık ve FPDF veya TCPDF ve PHPExcel kullanılmasını gerektirir.
Ben bir veya birden fazla tasarım desenleri (eğer mümkünse) ile benim sınıfları düzenlemek için en iyi yolu anlamaya çalışıyorum.
Çıkış formatları:
- Metin - Smarty
- Metin (w / PCL biçimlendirme) - Smarty
- CSV - Smarty
- HTML - Smarty
- Excel - PHPExcel
- PDF - FPDF / TCPDF
Bu biçimler akarsu ya da daha sonra kullanılmak üzere bir dosyaya yazılı bellekte olması gerekiyor.
Tüm raporlar tutarlı olan tek şey, PDF ve Excel desteği, bir şablon ek kadar veri ihtiyacı ve olmasıdır. Şu vea ben) getData (denilen soyut bir yöntem olan Rapor sınıf var. Her alt sınıf (örn. SpecificReport) vb bir şablon bağlama için bir sınıf özelliği ihtiyacı ve depolar veriyi alır
Her rapor tüm formatlarda kullanılabilir olması gerekir.
Rapor sınıfı vea çıkış kolları, ancak Excel ve PDF için destek ekleyerek bu imkansız yapıyor. Sadece Smarty ile gibi bir şablona veri bağlama daha çok var. Her rapor belirli bir kod gerektirir. Ben sadece her rapor sınıfta bu yöntemleri aşırı varsayalım.
Herkes benzer bir görevi karşılaştı?