定制 yakupeyisan/codeigniter4-saver 二次开发

按需修改功能、优化性能、对接业务系统,提供一站式技术支持

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

yakupeyisan/codeigniter4-saver

Composer 安装命令:

composer require yakupeyisan/codeigniter4-saver

包简介

CodeIgniter 4 için kapsamlı dosya kaydetme paketi - Excel, Word, PDF, HTML, CSV ve daha fazlası

README 文档

README

CodeIgniter 4 için kapsamlı ve güçlü dosya kaydetme paketi. Excel, Word, PDF, HTML, CSV ve daha fazla formatı destekler.

🎯 Özellikler

  • Excel Export/Import - PhpSpreadsheet ile güçlü Excel işlemleri
  • Word Oluşturma - PhpWord ile profesyonel Word belgeleri
  • PDF Oluşturma - mPDF ve TCPDF desteği
  • HTML/SHTML Export - Özelleştirilebilir HTML çıktıları
  • CSV Export/Import - Hızlı ve kolay CSV işlemleri
  • Şablon Desteği - Özel şablonlarla belgeler oluşturun
  • Veri Formatlaması - Otomatik veri tipi algılama ve formatlama
  • Toplu İşlemler - Büyük veri setlerini verimli işleme
  • Dosya İndirme - Doğrudan tarayıcıya indirme
  • Dosya Kaydetme - Sunucuya kaydetme desteği
  • Dosya Koruması - Şifre koruması ve salt okuma modu
  • Arka Plan Antet - Watermark ve antet desteği
  • Esnek API - Kolay kullanım ve özelleştirme

📦 Kurulum

Composer ile kurulum:

composer require yakupeyisan/codeigniter4-saver

.env Yapılandırması

.env dosyanıza aşağıdaki ayarları ekleyin:

# Varsayılan kayıt yolu (writable/attachments/)
SAVER_DEFAULT_SAVE_PATH=attachments

# Otomatik kaydetme modu (true/false)
SAVER_AUTO_SAVE=false

# Varsayılan sürücü
SAVER_DEFAULT_DRIVER=excel

Detaylı yapılandırma için SAVE_PATH_GUIDE.md dosyasına bakın.

🚀 Hızlı Başlangıç

Excel Export

use Yakupeyisan\CodeIgniter4Saver\Saver;

$saver = new Saver();

// Basit veri export
$data = [
    ['Ad', 'Soyad', 'Email'],
    ['Ahmet', 'Yılmaz', 'ahmet@example.com'],
    ['Mehmet', 'Kaya', 'mehmet@example.com']
];

$saver->excel()
    ->setData($data)
    ->setFileName('kullanicilar.xlsx')
    ->download();

// Veya varsayılan yola kaydet (writable/attachments/)
$filePath = $saver->excel()
    ->setData($data)
    ->setFileName('kullanicilar.xlsx')
    ->saveToDefault();

// Veya özel yola kaydet
$filePath = $saver->excel()
    ->setData($data)
    ->setFileName('kullanicilar.xlsx')
    ->save('path/to/directory');

PDF Oluşturma

$saver = new Saver();

$html = '<h1>Başlık</h1><p>İçerik</p>';

$saver->pdf()
    ->setContent($html)
    ->setFileName('belge.pdf')
    ->setOrientation('portrait') // portrait veya landscape
    ->setPageSize('A4')
    ->download();

Word Oluşturma

$saver = new Saver();

$saver->word()
    ->addTitle('Belge Başlığı', 1)
    ->addText('Bu bir paragraftır.')
    ->addTable([
        ['Kolon 1', 'Kolon 2'],
        ['Değer 1', 'Değer 2']
    ])
    ->setFileName('belge.docx')
    ->download();

HTML Export

$saver = new Saver();

$data = [
    ['Ad', 'Soyad', 'Email'],
    ['Ahmet', 'Yılmaz', 'ahmet@example.com']
];

$saver->html()
    ->setData($data)
    ->setTitle('Kullanıcı Listesi')
    ->setTemplate('custom-template') // Opsiyonel
    ->setFileName('liste.html')
    ->download();

CSV Export

$saver = new Saver();

$data = [
    ['Ad', 'Soyad', 'Email'],
    ['Ahmet', 'Yılmaz', 'ahmet@example.com']
];

$saver->csv()
    ->setData($data)
    ->setDelimiter(',')
    ->setEnclosure('"')
    ->setFileName('data.csv')
    ->download();

📖 Detaylı Kullanım

Daha fazla örnek ve kullanım senaryosu için EXAMPLES.md dosyasına bakın.

⚙️ Yapılandırma

Konfigürasyon dosyasını kopyalayın:

php spark saver:publish

Veya manuel olarak app/Config/Saver.php dosyasını oluşturun:

<?php

namespace Config;

use CodeIgniter\Config\BaseConfig;

class Saver extends BaseConfig
{
    public string $defaultDriver = 'excel';
    
    public string $tempPath = WRITEPATH . 'uploads/temp/';
    
    public string $savePath = WRITEPATH . 'uploads/saved/';
    
    // Excel ayarları
    public array $excel = [
        'default_format' => 'Xlsx',
        'creator' => 'CodeIgniter 4 Saver',
        'last_modified_by' => 'CodeIgniter 4 Saver',
    ];
    
    // PDF ayarları
    public array $pdf = [
        'engine' => 'mpdf', // mpdf veya tcpdf
        'default_orientation' => 'portrait',
        'default_page_size' => 'A4',
        'default_font' => 'dejavusans',
    ];
    
    // Word ayarları
    public array $word = [
        'default_font' => 'Arial',
        'default_font_size' => 11,
    ];
    
    // HTML ayarları
    public array $html = [
        'template_path' => APPPATH . 'Views/saver/templates/',
        'default_template' => 'default',
    ];
    
    // CSV ayarları
    public array $csv = [
        'delimiter' => ',',
        'enclosure' => '"',
        'escape' => '\\',
        'encoding' => 'UTF-8',
    ];
}

🔒 Dosya Koruması ve Antet

Şifre ile Koruma

// Excel - Düzenleme için şifre
$saver->excel()
    ->setData($data)
    ->setFileName('korunmus.xlsx')
    ->setPassword('sifre123')
    ->download();

// Word - Düzenleme için şifre
$saver->word()
    ->addTitle('Belge', 1)
    ->setPassword('sifre123')
    ->download();

// PDF - Düzenleme için şifre
$saver->pdf()
    ->setContent($html)
    ->setPassword('sifre123')
    ->download();

Sadece Okuma Modu

// Düzenleme yasak, sadece görüntüleme
$saver->excel()
    ->setData($data)
    ->setReadOnly(true)
    ->download();

Arka Plan Antet (Watermark)

// Metin antet
$saver->excel()
    ->setData($data)
    ->setWatermark('GİZLİ - SADECE İÇ KULLANIM')
    ->download();

// Resim antet
$saver->pdf()
    ->setContent($html)
    ->setWatermarkImage(ROOTPATH . 'public/images/watermark.png')
    ->download();

Kombine Kullanım

// Hem koruma hem antet
$saver->pdf()
    ->setContent($html)
    ->setFileName('tam-korunmus.pdf')
    ->setPassword('sifre123')
    ->setWatermark('GİZLİ BELGE')
    ->setReadOnly(true)
    ->download();

Daha fazla örnek için PROTECTION_EXAMPLES.md dosyasına bakın.

🔧 Gelişmiş Özellikler

Excel'de Stil Ekleme

$saver->excel()
    ->setData($data)
    ->setHeaderStyle([
        'font' => ['bold' => true],
        'fill' => ['fillType' => 'solid', 'startColor' => ['rgb' => 'FFFF00']]
    ])
    ->setColumnWidths(['A' => 20, 'B' => 30])
    ->download();

PDF'de Özel Ayarlar

$saver->pdf('mpdf') // veya 'tcpdf'
    ->setContent($html)
    ->setMargins(15, 15, 15, 15)
    ->setHeader('Başlık Metni')
    ->setFooter('Sayfa {PAGENO}')
    ->setWatermark('TASLAK')
    ->download();

Word'de Resim Ekleme

$saver->word()
    ->addTitle('Rapor', 1)
    ->addText('Açıklama metni')
    ->addImage('path/to/image.jpg', ['width' => 200, 'height' => 200])
    ->addPageBreak()
    ->download();

🤝 Katkıda Bulunma

Katkılarınızı bekliyoruz! Pull request göndermekten çekinmeyin.

📄 Lisans

MIT Lisansı ile lisanslanmıştır.

👤 Yazar

Yakup EYİSAN

🙏 Teşekkürler

Bu paket aşağıdaki harika kütüphaneleri kullanmaktadır:

yakupeyisan/codeigniter4-saver 适用场景与选型建议

yakupeyisan/codeigniter4-saver 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 0 次下载、GitHub Stars 达 0, 最近一次更新时间为 2025 年 12 月 22 日, 在 PHP 生态内属于活跃度较高的组件。

它主要适用于以下技术方向: 「excel」 「csv」 「word」 「pdf」 「html」 「document」 等业务场景。在实际项目中,围绕这些方向常见需要落地的问题包括:接口对接、性能调优、并发安全、与既有框架(Laravel / ThinkPHP / Yii / Webman 等)的兼容适配,以及生产环境的日志埋点与稳定性保障。

我们在过去多个企业项目中使用过 yakupeyisan/codeigniter4-saver 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。

围绕 yakupeyisan/codeigniter4-saver 我们能提供哪些服务?
定制开发 / 二次开发

基于 yakupeyisan/codeigniter4-saver 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。

BUG 修复 & 性能优化

线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。

项目外包 & 长期维护

承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。

yvsm@zunyunkeji.com QQ:316430983 微信:yvsm316 西安尊云信息科技 · 专注 PHP / Go / 分布式系统研发

统计信息

  • 总下载量: 0
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 0
  • 点击次数: 30
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 0
  • Watchers: 0
  • Forks: 0
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2025-12-22