Potential backward compatibility issues in Joomla 4/tr: Difference between revisions
From Joomla! Documentation
Updating to match new version of source page |
Updating to match new version of source page |
||
| Line 247: | Line 247: | ||
<noinclude> | <noinclude> | ||
[[ | [[Category:Compatibility{{#translation:}}]] | ||
[[ | [[Category:Development{{#translation:}}]] | ||
[[ | [[Category:Platform{{#translation:}}]] | ||
[[ | [[Category:Migration{{#translation:}}]] | ||
[[ | [[Category:Update Working Group{{#translation:}}]] | ||
[[ | [[Category:Joomla! 4.x{{#translation:}}]] | ||
[[Category:Joomla! 4.0{{#translation:}}]] | |||
</noinclude> | </noinclude> | ||
Revision as of 15:30, 10 May 2018
This article or section is incomplete, which means it may be lacking information. You are welcome to assist in its completion by editing it as well. If this article or section has not been edited in several days, please consider helping complete the content.
This article was last edited by FuzzyBot (talk| contribs) 8 years ago. (Purge)
Bu belge, Joomla! 4 potansiyeli için geriye dönük uyumluluk sorunlarını izlemektedir. Listelenen, uzantıları potansiyel olarak ihlal eden konular.
Bu karşılaştırmanın temeli Joomla 3.7
Güncellenmiş Sistem Gereksinimleri
Sistem gereksinimleri aşağıdaki gibi güncellenmiştir:
- PHP 5.5.9
- MySQL 5.5.3
- PostgreSQL 9.2
- SQL Server desteği düştü.
PHP MySQL Uzantısı
- Joomla! artık (PHP 7.0'da kaldırılan) PHP ext/mysql sürücüsünü kullanmayı desteklemiyor. Joomla! otomatik olarak mysqli uzantısını (PHP 5.3'ten beri mevcuttur) veya mysql PDO Sürücüsünü (PHP 5.3'ten beri mevcuttur) kullanmaya çalışır; aksi takdirde bir veritabanı bağlantısı oluşturmakta başarısız olur.
CMS Kütüphaneleri
Aşağıdaki değişiklikler Joomla! CMS kitaplıkları için yapılmıştır (bu öncelikle Joomla! 3'teki 'libraries/cms` dizininde bulunan koddur).
Yükleyici
Kaldırılan Sınıflar
Aşağıdaki sınıflar Joomla! 4.0'da kaldırılmıştır:
- JInstallerComponent (use JInstallerAdapterComponent instead)
- JInstallerFile (use JInstallerAdapterFile instead)
- JInstallerLanguage (use JInstallerAdapterLanguage instead)
- JInstallerLibrary (use JInstallerAdapterLibrary instead)
- JInstallerModule (use JInstallerAdapterModule instead)
- JInstallerPackage (use JInstallerAdapterPackage instead)
- JInstallerPlugin (use JInstallerAdapterPlugin instead)
- JInstallerTemplate (use JInstallerAdapterTemplate instead)
JInstallerAdapter Kalıtım
JInstallerAdapter no longer extends from JAdapterInstance and inherently JObject.
Menü
JMenu şimdi soyut sınıftır
JMenu artık soyut bir sınıf. JMenu alt sınıfları da artık bir yük yöntemi uygulamalıdır.
Manuel kaldırıldı Davranışı Dahil
JMenu::getInstance() içindeki mantık, uygulamanın includes/menu.php yolundan bir dosyayı el ile eklemek için kaldırılmıştır. Bunun yerine, JMenü alt sınıfı otomatik olarak yüklenmelidir.
Patika
Manuel Dahil Etme Davranışı Kaldırıldı
JPathway::getInstance() içindeki mantık, uygulamanın includes/pathway.php yolundan bir dosyayı el ile eklemek için kaldırılmıştır. Bunun yerine, JPathway alt sınıfı otomatik olarak yüklenmelidir.
Yönlendirici
Manuel Dahil Etme Davranışı Kaldırıldı
The logic in JRouter::getInstance() to manually include a file from the application's includes/router.php path has been removed. The JRouter subclass should be autoloaded instead.
JVersiyon
Sınıf özellikleri olarak JVersion sınıf sabitleri erişen desteği artık desteklenmemektedir. sabit düzenlenmiş olan eski sınıf özellikleri önlemek için Joomla! 3.5'de tanıtılmıştır.
Platform
Joomla! Platform kütüphaneleri için aşağıdaki değişiklikler yapılmıştır (bu öncelikle Joomla! 3'teki 'libraries/joomla` veya `libraries/legacy' dizininde bulunan koddur).
Uygulama
Kaldırılan Sınıflar
Aşağıdaki sınıflar Joomla! 4.0'da kaldırılmıştır:
- JApplicationWebRouter (bunun yerine `joomla/router' paketini kullanın)
- JApplicationWebRouterBase (bunun yerine `joomla/router' paketini kullanın)
- JApplicationWebRouterRest (bunun yerine `joomla/router` paketini kullanın)
Kullanımdan Kaldırılan Sınıflar
Aşağıdaki sınıflar kullanımdan kalktı ve Joomla! 5.0'da kaldırılması planlandı:
- JApplicationBase (use Joomla\Application\AbstractApplication instead)
CLI/Web Sınıfı Değişiklikleri
The JApplicationCli and JApplicationWeb classes have been recomposed to extend from the Framework's Application package instead. This breaks type checks for a JApplicationBase object. For forward compatibility, it is recommended to check if application classes are an instance of Joomla\Application\AbstractApplication (JApplicationBase has extended this class since Joomla! 3.4).
Additionally, both of these classes are now abstract. Developers implementing these classes must provide a `doExecute` method with their application's logic.
JApplicationCli
- Eski: JApplicationCli → JApplicationBase → Joomla\Application\AbstractApplication
- Yeni: JApplicationCli → Joomla\Application\AbstractCliApplication → Joomla\Application\AbstractApplication
JApplicationWeb
- Eski: JApplicationWeb → JApplicationBase → Joomla\Application\AbstractApplication
- Yeni: JApplicationWeb → Joomla\Application\AbstractWebApplication → Joomla\Application\AbstractApplication
Crypt
Kaldırılan Sınıflar
The following ciphers have been removed in Joomla! 4.0:
- JCryptCipher3Des
- JCryptCipherBlowfish
- JCryptCipherMcrypt
- JCryptCipherRijndael256
- JCryptCipherSimple
These have been removed without replacement. Use JCryptCipherCrypto
Belge
Kullanımdan Kaldırılan Sınıflar
The following classes have been deprecated and scheduled for removal in Joomla! 5.0:
- JDocumentError (use \Joomla\Cms\Error\RendererInterface objects instead)
JDocumentFeed
The property type of JDocumentFeed::$lastBuildDate has changed from a string to a JDate object. The property was previously unused by the core Joomla API but extensions may have used it.
JDocumentRendererFeedRss
In order to comply with the RSS feed specification, JDocumentRendererFeedRss now allows the lastBuildDate element to be configured using the JDocumentFeed::$lastBuildDate class property when a feed is rendered. This value defaults to the current time, as is the case with Joomla! 3.x and earlier, however the time can be correctly set by changing this class property to a JDate object representing the desired timestamp.
HTTP
Kullanılmayan Sınıflar ve Arayüzler
The following classes and interfaces have been deprecated and scheduled for removal in Joomla! 5.0:
- JHttpResponse (use Joomla\Http\Response instead)
- JHttpTransport (implement Joomla\Http\TransportInterface instead)
Sınıf Değişiklikleri
The Framework's HTTP package is now included in Joomla! 4.0 and JHttp and the JHttpTransport subclasses have been refactored to use the upstream package.
JHttp
The JHttp class constructor has been loosened with the following changes:
- The options parameter is no longer typehinted as a Joomla\Registry\Registry object, an array or any object implementing the ArrayAccess interface can be used instead
- The transport parameter now allows any Joomla\Http\TransportInterface object.
JHttpTransport
The now deprecated JHttpTransport interface extends Joomla\Http\TransportInterface now and has caused backward compatibility breaking changes in the interface. The constructor is no longer part of the interface, and the interface's `request()` method has had a signature change. Specifically, the second parameter which previously typehinted the JUri class now typehints Joomla\Uri\UriInterface.
JHttpResponse
In refactoring the response object to inherit from the Framework's HTTP package, which is now using the PSR-7 ResponseInterface API, a minor compatibility break has been made in the structure of the response headers. As of 4.0, this will now always be a multi-dimensional array where the key is the header name and the value is an array of values for that header (previously, this was a string).
Görüntü
Kullanılmayan Sınıflar ve Arayüzler
The following classes and interfaces have been deprecated and scheduled for removal in Joomla! 5.0:
- JImageFilter (use Joomla\Image\ImageFilter instead)
- JImageFilterBackgroundfill (use Joomla\Image\Filter\Backgroundfill instead)
- JImageFilterBrightness (use Joomla\Image\Filter\Brightness instead)
- JImageFilterContrast (use Joomla\Image\Filter\Contrast instead)
- JImageFilterEdgedetect (use Joomla\Image\Filter\Edgedetect instead)
- JImageFilterEmboss (use Joomla\Image\Filter\Emboss instead)
- JImageFilterGrayscale (use Joomla\Image\Filter\Grayscale instead)
- JImageFilterNegate (use Joomla\Image\Filter\Negate instead)
- JImageFilterSketchy (use Joomla\Image\Filter\Sketchy instead)
- JImageFilterSmooth (use Joomla\Image\Filter\Smooth instead)
Sınıf Değişiklikleri
The Framework's Image package is now included in Joomla! 4.0 and JImage and the JImageFilter subclasses have been refactored to use the upstream package.
Keychain
Removing the keychain with 4.0 has resulted in the removal of the following class:
- JKeychain
Tablo
- JTable::__construct database object is now typehinted to be a JDatabaseDriver.
- Subclasses of JTable will need to ensure they are passing a JDatabaseDriver object to the parent constructor
- Subclasses of JTable will need to change the method signature of setDbo() if they have an extended version of that method to include the typehint
Posta
The following methods have been removed in Joomla! 4.0:
- JMail::sendAdminMail has been removed
Eski MVC Katmanı
Eski Denetleyici
- JControllerLegacy has been removed from the legacy layer, and we no longer intend to remove it or it's subclasses in the near future.
- JControllerLegacy no longer extends JObject. Controllers should not call any of the methods contained in the JObject class.
- JControllerLegacy implements an interface for multiple task controllers
- JControllerLegacy::_construct now requires a compulsory JApplicationCms object. If you were previously getting a Controller object through JControllerLegacy::getInstance you do not need to change your code.
- JControllerForm now using the StringInflector package to determine the list view. This should improve it's ability to guess determine the list view of more view names. If extension developers find that their list view is no longer being found they should manually set the `view_list` class property in their controller.
Oturum
The session package has undergone a major refactoring to use the Framework's Session package. This change primarily effects the internals of the package; changes to the primary public API through the JSession class are minimal.
Kullanılmayan Sınıflar ve Arayüzler
Joomla! 5.0'da aşağıdaki sınıflar ve arayüzler kaldırılmıştır:
- JSessionExceptionUnsupported
- JSessionHandlerInterface
- JSessionHandlerJoomla
- JSessionHandlerNative
- JSessionStorage
- JSessionStorageApc
- JSessionStorageDatabase
- JSessionStorageMemcache
- JSessionStorageMemcached
- JSessionStorageNone
- JSessionStorageWincache
- JSessionStorageXcache
JOturum
JSession now extends from the Framework's Joomla\Session\Session class. Many of the methods have a modified signature and a compatibility layer exists to help with the transition.
Ad Alanı Parametresi Kullanımdan Kaldırıldı
The get, set, has, and clear methods previously supported a namespace parameter. This parameter is now deprecated, the namespace should be prepended to the name before calling these methods.
JSession::clear() Repurposed
In the Joomla\Session\Session class, the clear method is used to clear all data from the session store. In JSession, this method is used to remove a single key. When this method is called with parameters, it will call the new Joomla\Session\Session::remove() method.
JSession::getInstance() Deprecated
The singleton getInstance() method has been deprecated. The session object should be retrieved from the active application or the dependency injection container instead.
Oturum Eylemcisi
In Joomla! 3.x and earlier, session handlers were represented by the JSessionStorage class and its subclasses. In Joomla! 4.0, session handlers are now implementations of Joomla\Session\HandlerInterface (which is an extension of PHP's SessionHandlerInterface. All handlers which were supported in Joomla! 3.x are still available in 4.0 in addition to two additional handlers; a handler natively implementing the APCu extension and a handler supporting Redis.
Değiştirme olmadan kaldırılan sınıflar
- JNode
- JTree
Utilities
Removed Classes and Interfaces
The following classes and interfaces have been removed in Joomla! 4.0:
- JArrayHelper
use Joomla\Utilities\ArrayHelper; instead.
Harici Kütüphaneler
The following changes have been made to the external libraries that Joomla! packages and ships.
PHPMailer
Joomla! 4.0 ships with PHPMailer 6.0. Please review the upgrading guide for relevant changes.
PHPUTF8
At Joomla! 3.4, the PHPUTF8 library lived in two locations in the Joomla! package; `libraries/phputf8` and `libraries/vendor/joomla/string/src/phputf8`. In Joomla! 4.0, the copy of the library in `libraries/phputf8` has been removed. The Joomla\String\StringHelper class exposes many of the library's functions and the Composer autoloader definition imports much of the library as well, however, if you need a feature that is not already included then you should import the required functions from the `libraries/vendor/joomla/string/src/phputf8` path.
SimplePie
SimplePie kütüphanesi artık Joomla! 4.0'a dahil değildir.
jQuery
Joomla! 4.0 ships with jQuery 3. Please review the upgrading guide for relevant changes. Note that we are not including jQuery Migrate anymore either. We recommend using it locally to help debug your code if there are any issues.
Bootstrap
Joomla! 4.0, Bootstrap 4 ile birlikte gelir.
Bootstrap 2.3.2 has been deprecated.
Şablonlar
Arka plandaki ISIS ve Hathor'un tümü olan Joomla! 3 şablonları ve ön uçtaki protostar ve Beeze artık desteklenmiyor. Yeni 4.0 arka uç şablonuna Atum adı verilir ve ön uç şablonu Aurora olarak adlandırılır.
As a consequence, all extensions must migrate to the new Bootstrap 4 style, away from the current Bootstrap 2.3.2 implementation. For more information about Bootstrap 4: [1]. For more information about Bootstrap 2.3.2: [2]
Diğer
Çöp Kutusu
Removing the keychain with 4.0 has resulted in the removal of the entire Bin directory as it only contained keychain.