İçindekiler

  1. Giriş

  2. Dolibarr ve PHP Arasındaki İlişki

  3. Dolibarr için Desteklenen PHP Sürümleri (2023–2025)

  4. Dolibarr'da Yaygın PHP Uyumluluk Sorunları

  5. Dolibarr ile PHP Sorunlarının Tanılanması

  6. Hata Günlüklerini ve Uyarı Türlerini Anlama

  7. Dolibarr için PHP'yi Güvenli Şekilde Yükseltme veya Düşürme

  8. Dolibarr için PHP Yapılandırmasının Ayarlanması

  9. PHP Değişikliklerinden Kaynaklanan Dolibarr Hatalarının Düzeltilmesi

  10. Özel Modüller ve Şablonlar PHP Güncellemeleriyle Nasıl Bozulur

  11. PHP Uyumluluğu için Geliştirme En İyi Uygulamaları

  12. Dolibarr Örneğinizi Geleceğe Nasıl Hazırlarsınız

  13. Son Düşüncelerimiz


1. Giriş

Dolibarr ERP & CRM, serbest çalışanların, KOBİ'lerin ve hatta büyük kuruluşların gelişen ihtiyaçlarını karşılamak için tasarlanmış sağlam, açık kaynaklı bir iş yönetim platformudur. PHP kullanılarak oluşturulan Dolibarr, web sayfalarını işlemekten iş mantığını ve API uç noktalarını yürütmeye kadar her şey için tamamen PHP çalışma zamanına güvenir.

Bu nedenle, PHP sürüm uyumluluğu sadece teknik bir ayrıntı değil; performansı, işlevselliği ve istikrarı doğrudan etkileyebilecek temel bir unsurdur.

Bu makalede, PHP ve Dolibarr'ın nasıl etkileşime girdiğini inceleyecek, yaygın uyumluluk sorunlarını belirleyecek, tanılama ve düzeltmeleri ele alacak ve sisteminizi hem çalışır durumda tutmak hem de korumak için en iyi uygulamaları sunacağız. güncel ve istikrarlı.


2. Dolibarr ve PHP Arasındaki İlişki

Dolibarr tamamen PHP ile oluşturulmuştur. Her bir özellik, modül ve kullanıcı arayüzü bileşeni PHP tabanlı bir yürütme motoruyla işlenir. Bu, sunucunuzda çalışan PHP sürümü anlamına gelir. Dolibarr'ın desteklediği şeylerle uyumlu olmalı.

PHP sürümünüz şuysa: çok yaşlı, Dolibarr başlamayabilir veya önemli özellikleri kaçırabilirsiniz. Eğer çok yeni, beklenmeyen hatalarla, kullanım dışı kalmış işlevlerle ve bozuk modüllerle karşılaşabilirsiniz.

PHP yükseltmeleri şunları sunar:

  • Performans iyileştirmeleri

  • Fonksiyonların kullanım dışı bırakılması veya kaldırılması

  • Varsayılan davranışta değişiklikler (örneğin, katı yazım, hata işleme)

  • Uzantılar veya yapılandırma değişiklikleri

  • Güvenlik düzeltmeleri

Dolibarr sürümleri, daha yeni PHP sürümlerini desteklemek için düzenli olarak güncellenir, ancak bu değişiklikleri dikkatli bir şekilde takip etmiyorsanız, kendinizi bir PHP güncellemesinden sonra bozulan örnek.


3. Dolibarr için Desteklenen PHP Sürümleri (2023–2025)

İşte Dolibarr'ın son sürümleri arasındaki PHP uyumluluğuna dair genel bir bakış:

Dolibarr Sürümü En az PHP Önerilen PHP Maksimum Test Edilen PHP
13.x – 14.x PHP 7.0 PHP 7.4 PHP 8.0
15.x – 17.x PHP 7.2 PHP 8.0 PHP 8.1
18.x – 20.x PHP 7.4 PHP 8.0 / 8.1 PHP 8.1
21.x – 22.x PHP 8.0 PHP 8.1 + PHP 8.2 / 8.3
Gelecek 23.x+ PHP 8.1 PHP 8.2 + PHP 8.3 +

Hatırlatma: PHP'yi yükseltmeden önce mutlaka kullandığınız Dolibarr sürümünün yayın notlarına bakın.


4. Dolibarr'da Yaygın PHP Uyumluluk Sorunları

PHP sürümleri Dolibarr'ın gereksinimleriyle doğru şekilde uyumlu olmadığında aşağıdaki sorunlar ortaya çıkabilir:

4.1 Önemli Hatalar

  • Örnek:

    php

    Fatal error: Uncaught Error: Call to undefined function get_magic_quotes_gpc()

Bu durum, Dolibarr kodunun PHP'nin yeni sürümlerinde (örneğin PHP 8.0 ve üzeri) kaldırılan bir fonksiyonu çağırması durumunda gerçekleşir.

4.2 Kullanımdan Kaldırma Uyarıları

  • Örnek:

    php

    Deprecated: Array and string offset access syntax with curly braces is deprecated

Bu uyarı uygulamanın çökmesine neden olmaz ancak günlükleri karmaşıklaştırır ve gelecekteki arıza noktalarını gösterebilir.

4.3 Modül Uyumsuzluğu

  • PHP 7.x için yazılan üçüncü taraf modülleri PHP 8.x altında bozulabilir

  • Güncel olmayan işlevleri kullanan özel PDF şablonları boş veya bozuk belgeler oluşturabilir

4.4 Beklenmeyen Davranış

  • Bozuk yönlendirmeler

  • Oturum sorunları (örneğin, sürekli oturum kapatmalar)

  • API kimlik doğrulama hataları

Bunların izlenmesi daha zordur ancak genellikle şunlardan kaynaklanır: yeni PHP sürümlerinde değiştirilen varsayılanlar veya daha katı tür işleme.


5. Dolibarr ile PHP Sorunlarının Tanılanması

Uyumluluk sorunlarını çözmenin ilk adımı, sebebini doğru bir şekilde belirlemek.

5.1 Hata Bildirimini Etkinleştir

In htdocs/main.inc.php, hata çıktısını etkinleştir:

php

ini_set('display_errors', 1); error_reporting(E_ALL);

Bu, test sırasında uyarıları, bildirimleri ve ölümcül hataları doğrudan tarayıcınızda görmenizi sağlayacaktır.

5.2 PHP Günlüklerini Kontrol Edin

PHP günlükleri genellikle tarayıcı çıktısından daha fazla ayrıntı içerir.

Tipik lokasyonlar:

  • /var/log/php-fpm.log

  • /var/log/apache2/error.log

  • /var/log/nginx/error.log

  • /var/log/php/error.log (Paylaşılan Evsahipliği)

İlgili son girdileri kontrol edin undefined functions, deprecated syntaxya da memory_limit ihlalleri.

5.3 phpinfo()'yu kullanın

Dolibarr kök dizininde basit bir PHP dosyası oluşturun:

php

<?php phpinfo(); ?>

Tarayıcınız üzerinden erişin ve onaylayın:

  • PHP sürümü

  • Yüklenen uzantılar

  • Yapılandırma değerleri (memory_limit, upload_max_filesizeVb.)

  • Oturum ve saat dilimi ayarları

6. Hata Günlüklerini ve Uyarı Türlerini Anlamak

PHP'nin ürettiği farklı hata türlerini anlamak, etkili sorun gidermenin anahtarıdır. İşte PHP uyumsuzluğu olduğunda Dolibarr'da görülen en yaygın hata türlerinin kısa bir dökümü.

6.1 Önemli Hatalar

Bunlar yürütmeyi hemen durdurur. Dolibarr sayfaları boş görünebilir veya yarıda kesilebilir.

Örnek:

php

Fatal error: Uncaught Error: Undefined function mb_str_split()

6.2 Uyarılar

Uyarılar bir sorun olduğunu gösterir, ancak sayfa genellikle yine de yüklenir.

Örnek:

php

Warning: Use of undefined constant ‘FOO’ - assumed ‘FOO’

Bunlar genellikle üçüncü taraf kodlarının yeni PHP sürümleri için güncellenmediğinde ortaya çıkar.

6.3 Bildirimleri

Bildirimler özensiz veya kullanım dışı kalmış kodlara işaret ediyor.

Örnek:

php

Notice: Trying to access array offset on value of type null

Bunlar bugün işlevselliği etkilemeyebilir ancak gelecekteki PHP sürümlerinde hataya dönüşebilir.

6.4 Kullanımdan Kaldırılan Bildirimler

PHP yakında kaldırılacak özellikleri işaretler. Bu bildirimler erken uyarı sisteminiz.

Örnek:

php

Deprecated: Function create_function() is deprecated in ...

Dolibarr çekirdeği genellikle her sürümde temizlenirken, eski modüller ve özel kodlar genellikle bu bildirimlere neden olur.


7. Dolibarr için PHP'yi Güvenli Şekilde Yükseltme veya Düşürme

PHP sürümünüzü değiştirmek sorunları çözebilir veya yaratabilir. Önemli olan bunu metodik bir şekilde yapmaktır.

7.1 PHP'yi Ne Zaman Yükseltmelisiniz

Aşağıdaki durumlarda yükseltin:

  • Artık desteklenmeyen eski bir PHP sürümü (örneğin 7.2, 7.3) çalıştırıyorsunuz

  • Daha iyi performansa veya güvenlik özelliklerine ihtiyacınız var

  • Daha yeni bir Dolibarr sürümüne geçiyorsunuz (örneğin, 22.x+ PHP 8.0 veya üzerini gerektirir)

7.2 PHP'yi Ne Zaman Geriye Almalısınız

Aşağıdaki durumlarda notunuzu düşürün:

  • Eski Dolibarr sürümlerini kullanıyorsunuz (örneğin, v12–v14)

  • Özel modüller PHP 8.x ile uyumlu değildir

  • PHP güncellemesinden sonra ölümcül hatalarla karşılaşıyorsunuz

Hatırlatma: PHP'yi üretimde değiştirmeden önce her zaman bir hazırlama ortamında test edin.


7.3 PHP Sürümü Nasıl Değiştirilir (Linux CLI)

Ubuntu/Debian için:

darbe

sudo apt install php8.1 php8.1-mysql php8.1-cli php8.1-fpm sudo update-alternatives --config php

CentOS/RHEL için:

darbe

sudo yum install php81 php81-php-fpm

Önceki bir sürüme geri dönmek için:

darbe

sudo update-alternatives --config php

Web sunucusunu yeniden başlatın:

darbe

sudo systemctl restart apache2 # or sudo systemctl restart php8.1-fpm

Değişiklikten sonra Dolibarr'ın düzgün yüklendiğinden ve tüm modüllerin erişilebilir olduğundan emin olun.


8. Dolibarr için PHP Yapılandırmasının Ayarlanması

Doğru PHP sürümü kullanılsa bile, kötü ayarlar performansın yavaşlamasına veya beklenmeyen hatalara neden olabilir.

Düzenle php.ini Bu ayarları ince ayarlamak için:

ini

memory_limit = 512M upload_max_filesize = 20M post_max_size = 25M max_execution_time = 120 max_input_vars = 3000 date.timezone = "Europe/Paris" ; Or your local timezone

8.1 Gerekli Uzantıları Etkinleştir

Dolibarr birkaç PHP uzantısı gerektirir. Kullanım php -m aktif modülleri kontrol etmek için.

Şunların etkinleştirildiğinden emin olun:

  • pdo_mysql

  • mbstring

  • curl

  • gd

  • intl

  • json

  • fileinfo

  • xml

Uzantıları şu şekilde etkinleştirin:

darbe

sudo apt install php8.1-gd php8.1-mbstring php8.1-curl php8.1-intl

Daha sonra web sunucunuzu yeniden başlatın.


9. PHP Değişikliklerinden Kaynaklanan Dolibarr Hatalarının Düzeltilmesi

PHP sürüm uyuşmazlıklarından kaynaklanan belirli Dolibarr sorunlarını düzeltme yöntemi:

9.1 get_magic_quotes_gpc() Tanımsız

Bu fonksiyon PHP 8.0'da kaldırıldı.

sabit: Dolibarr'ı en azından v15.x sürümüne yükseltin veya özel modüllerdeki çağrıları yorum satırına alın.


9.2 Boş Faturalar veya Teklifler

Bu durum çoğunlukla PHP 8 ile uyumlu olmayan eski TCPDF veya DOMPDF sürümlerinden kaynaklanır.

sabit:

  • Özel PDF şablonlarını güncellenmiş olanlarla değiştirin

  • Yükseltme lib/pdf or lib/tcpdf dizinleri

  • Öncesinde boşluk olmadığından emin olun <?php şablonlardaki etiketler


9.3 API Kimlik Doğrulaması Başarısız

Daha yeni PHP sürümleri başlık ayrıştırmayı daha sıkı bir şekilde ele alabilir.

sabit:

  • API anahtarının doğru şekilde iletildiğini doğrulayın

  • İçerik türü başlıklarının ayarlandığını onaylayın

  • Dolibarr yapılandırmasında web hizmetlerini yeniden etkinleştirin


9.4 Bozuk Modüller veya Menüler

PHP yükseltmesinden sonra menüler kaybolursa veya modüller yüklenemezse, bunun nedeni şunlar olabilir:

  • Kullanım dışı bırakılmış sözdizimi (örneğin süslü parantez dizisi ofsetleri)

  • Sınıflardaki eski tip oluşturucular

  • Eksik veya değiştirilmiş fonksiyon çağrıları

sabit:

  • Günlükleri kontrol et

  • Sorunlu modülü devre dışı bırakın

  • Daha yeni bir sürüm varsa modülü güncelleyin

  • PHP 8.x güncellemesi için modül geliştiricisiyle iletişime geçin


10. Özel Modüller ve Şablonlar PHP Güncellemeleriyle Nasıl Bozulur?

Dolibarr çekirdeği hızla evrimleşir, ancak özel modüller genellikle geride kalır. İşte tipik olarak bozulanlar:

10.1 Eski PHP Sözdizimi

PHP 5 veya 7 için yazılan özel modüller artık kullanım dışı olan sözdizimini kullanabilir.

  • create_function()

  • each()

  • Kısa açık etiketler (<? yerine <?php)

  • Sıkı olmayan karşılaştırma

Çözüm: PHP 8'in en iyi uygulamalarını kullanarak kodu yeniden düzenleyin ve bir hazırlama sunucusunda test edin.


10.2 Kullanımdan Kaldırılan Yapıcılar

Daha eski sınıf oluşturucuları, PHP 8'de artık geçerli olmayan sınıf adını kullanabilir:

php

class MyModule { function MyModule() { ... } // Invalid in PHP 8 }

Ile değiştirin:

php

function __construct() { ... }

10.3 Eski Çağrılar İçeren PDF Şablonları

Özel PDF fatura veya teklif şablonları genellikle DOMPDF veya TCPDF'nin yeni sürümleriyle çakışan eski yöntemleri veya işlevleri kullanır.

Çözüm:

  • Şablonu en son sürümü kullanarak yeniden oluşturun pdf_model.class.php yapı

  • Tüm değişkenleri ve çıktı fonksiyonlarını doğrulayın

  • Tamponlanmış içerik dışında herhangi bir doğrudan yankı veya baskı ifadesinden kaçının


11. PHP Uyumluluğu için Geliştirme En İyi Uygulamaları

Dolibarr'ı geliştirenler veya genişletenler, mevcut ve gelecekteki PHP sürümleriyle uyumluluğu garantilemek için şu en iyi uygulamaları takip edebilirler.

Geliştirmede PHP 8+ kullanın

Üretimde eski sürümler kullanılsa bile, modüllerinizi her zaman en son PHP sürümleriyle test edin.

Kullanımdan Kaldırılan Özelliklerden Kaçının

PHP kılavuzunu veya şu araçları kullanarak kullanımdan kaldırma işlemlerini takip edin:

Mümkün Olduğunda Tip Bildirimlerini Kullanın

Tür güvenli kod, PHP sürüm değişikliklerine karşı daha dayanıklıdır.

php

public function calculateTotal(float $amount, int $taxRate): float

Modülleri Doğru Şekilde Yapın

Dolibarr'ın modül iskeletini takip edin ve şunları beyan ettiğinizden emin olun:

  • Çengeller

  • İzinler

  • Menü girişleri

  • Dil dosyaları

Bu, PHP değişikliklerinden bağımsız olarak modülünüzün temiz bir şekilde entegre olmasını sağlar.


12. Dolibarr Örneğinizi Geleceğe Nasıl Hazırlarsınız

Her zaman LTS Sürümlerini Kullanın

Dolibarr'ın etiketli sürümlerine sadık kalın kararlı or LTS gerilemeleri önlemek için.

Yükseltmeden Önce Test Edin

Sürdürmek evreleme ortamı Yakında çıkacak PHP ve Dolibarr sürümleriyle birlikte.

Parça Uyumluluk Duyuruları

Dolibarr değişiklik günlükleri genellikle PHP desteği hakkında notlar içerir. Şunlara dikkat edin:

  • Minimum PHP sürüm değişiklikleri

  • Kullanımdan kaldırılan özellikler

  • Uyumluluğu bozan temel güncellemeler

Uyumluluk Kontrollerini Otomatikleştirin

Statik analiz araçlarını CI işlem hattınıza entegre edin:

  • PHPStan

  • Mezmur

  • PHP_CodeSniffer (PHPCaptaibility kurallarıyla birlikte)


13. Son Düşünceler

PHP uyumluluğu, küçük işletme sahiplerinden tam yığın geliştiricilere kadar her Dolibarr kullanıcısı için temel bir endişedir. Dolibarr, modern PHP özelliklerinin avantajlarından yararlanmak için evrimleştikçe (hız, güvenlik ve kod kalitesini artırarak) ortamınızı onunla birlikte evrimleştirmelisiniz.

Akıllı bir uyumluluk stratejisi şunları içerir:

  • devam ediyor desteklenen Dolibarr sürümleri

  • PHP'yi güncel tutmak—ama değil çok ileri

  • Sahneleme ortamlarında kapsamlı testler

  • Özel modülleri proaktif olarak güncelleme

  • PHP geliştirme en iyi uygulamalarını takip etmek

PHP ile Dolibarr arasındaki ilişkiye hakim olarak, ERP sisteminizin yalnızca işlevsel ve hızlı, Aynı zamanda dayanıklı ve geleceğe hazır.