it-swarm-id.com

Joomla! Komponen CMS dengan Joomla! Kerangka?

Saya ingin tahu tentang membangun komponen CMS di atas Joomla! Kerangka kerja terutama karena saya ingin komponen saya berfungsi sebagai aplikasi mandiri.

Apakah ini bisa dilakukan tanpa peretasan? Jika tidak, apakah ada cara yang disukai untuk mendekati ini?

7
Nestor Ledon

Pertanyaan ini tidak mungkin dijawab secara meyakinkan, tetapi saya pikir layak untuk mengambil bacokan pada beberapa bagian paling umum yang dapat membuat Anda tersandung dalam porting code (dan akan ada beberapa).

Sebelum masuk ke spesifik, semua ini bisa dianggap hack, tergantung pada sudut pandang Anda. CMS dan Framework sangat berbeda dari sudut pandang komponen. CMS mendefinisikan struktur yang tepat untuk digunakan. Kerangka ini dirancang untuk memungkinkan Anda menyesuaikan cara aplikasi Anda berinteraksi dan berinteraksi. Kerangka pasti dapat dirancang untuk menjalankan komponen dari CMS, tetapi pada titik tertentu ini hanya Anda membuat ulang CMS, yang tampaknya tidak ada gunanya.

Pertama, jawaban super singkat dan sederhana: setiap cara komponen Anda berinteraksi dengan CMS perlu diulang, Anda perlu menambahkan router, dan Anda mungkin harus menambahkan namespace atau autoloader baru.

Mari kita mulai dengan bagian kedua ini. Kemungkinannya adalah Anda menggunakan composer dengan Joomla Framework, jadi Anda dapat melakukan bank pada autoloader komposer yang memuat kelas sesuai kebutuhan Anda. Ini dirancang untuk berjalan di dalam namespaces dan memuat berdasarkan itu, jadi komponen Anda tidak akan memuat otomatis. (Saya menduga ini, jadi jika ada cara yang lebih baik, tolong beri komentar.) Ini berarti Anda harus menambahkan autoloader Anda sendiri untuk kelas MVC atau menulis ulang di ruang nama .

Kedua, Anda perlu menambahkan file router Anda sendiri ke aplikasi. Karena Anda tidak lagi memiliki pengelola menu, Anda harus membuat ulang ini menggunakan kelas Router. Ini sebenarnya cukup mudah untuk memetakan url ke pengontrol, tetapi Anda harus memastikan ini ada di aplikasi.

Terakhir, Anda harus mendukung fitur CMS apa pun yang Anda gunakan dalam komponen. Yang terbesar yang muncul di benak saya adalah JFactory. Setiap skrip yang memanggil kelas itu untuk mendapatkan sesi, database, atau dokumen tidak akan berfungsi. (Kecuali jika Anda melakukan porting kelas itu dan mendefinisikan kembali kaitnya agar sesuai dengan aplikasi Anda.

Apakah Anda menelepon JComponentHelper di suatu tempat? Anda harus menambahkan dukungan untuk itu. Apakah Anda menelepon ke pembantu lain untuk ekstensi inti seperti com_content atau com_users? Itu tidak akan berhasil lagi.

Anda bisa menjalankan beberapa ekstensi sederhana pada framework dengan mudah. Mereka yang mengaitkan ke CMS dalam banyak cara mungkin pada dasarnya memerlukan membangun kembali CMS untuk melakukan semua bagian. Bagian ini sangat tergantung pada ekstensi.


Sebagai penutup, pada tahap ini, kemungkinan besar akan melibatkan beberapa jenis peretasan atau menyalin/menempelkan kode dari CMS ke kerangka kerja yang Anda butuhkan.

Saya percaya bahwa CMS akan menjadi lebih sejalan dengan struktur kerangka kerja (yaitu menggunakan komposer, menggunakan ruang nama, dll.) Yang akan membuat ini lebih mudah. Saat ini, itu adalah tugas yang cukup menakutkan.

5
David Fritsch