现在不少框架都效仿ROR的ActiveRecord,将model直接作为数据库交互层。而许多业务大都不止针对一张表,有的还包含数据库之外的逻辑,那么我只好把这些业务逻辑放在控制器里处理。
这是不是违背了控制器的原意---连接模型和视图的桥梁
应不应该在数据模型和控制器之前再增加一个层?
大家是怎么做的? 数据库查询和业务调用都混在model里? 有框架能规避能规避这一点吗?
回复讨论(解决方案)
ORM ?
简单的说,ORM 是把数据库中的关系数据映射称为程序中的对象
在 MVC 中 M、V、C 间并无确定的分工界限
所以在 C中完成部分的乃至全部的业务逻辑都是不违规的
就如同将连续的数据离散化一样,选择不同的阀值,就可得到不同的结果。
我以为基于 ORM 的框架只是提供了一个雏形,应用的具体的项目时还需要进一步扩展
鉴于应用项目的不可预知性,大多 ORM 都没有提供关联或只提供一个接口
所以将 model 从基于 table 改为基于 view 比较好(当然 view 也是不可预知的)
学习。
现在不少框架都效仿ROR的ActiveRecord,将model直接作为数据库交互层。而许多业务大都不止针对一张表,有的还包含数据库之外的逻辑,那么我只好把这些业务逻辑放在控制器里处理。
这是不是违背了控制器的原意---连接模型和视图的桥梁
应不应该在数据模型和控制器之前再增加一个层?
大家是怎么做的? 数据库查询和业务调用都混在model里? 有框架能规避能规避这一点吗?
饿哦局的可以把数据库专门做一层封装,而model负责处理业务逻辑,需要处理数据的时候调用封装好的数据库模块,这样数据库模块也可以通用化给不同的model调用,而controller专门做控制,这样结构也很清晰。
现在不少框架都效仿ROR的ActiveRecord,将model直接作为数据库交互层。而许多业务大都不止针对一张表,有的还包含数据库之外的逻辑,那么我只好把这些业务逻辑放在控制器里处理。
这是不是违背了控制器的原意---连接模型和视图的桥梁
应不应该在数据模型和控制器之前再增加一个层?
大家是怎么做的? 数据库查询和业务调用都混在model里? 有框架能规避能规避这一点吗?
饿哦局的可以把数据库专门做一层封装,而model负责处理业务逻辑,需要处理数据的时候调用封装好的数据库模块,这样数据库模块也可以通用化给不同的model调用,而controller专门做控制,这样结构也很清晰。
饿哦局的=》我觉得
学习.....大牛任务

Dalam PHP, sifat sesuai untuk situasi di mana penggunaan semula kaedah diperlukan tetapi tidak sesuai untuk warisan. 1) Ciri membolehkan kaedah multiplexing dalam kelas untuk mengelakkan pelbagai kerumitan warisan. 2) Apabila menggunakan sifat, anda perlu memberi perhatian kepada konflik kaedah, yang dapat diselesaikan melalui alternatif dan sebagai kata kunci. 3) Tua yang berlebihan harus dielakkan dan tanggungjawab tunggalnya harus dikekalkan untuk mengoptimumkan prestasi dan meningkatkan pemeliharaan kod.

Kontena Suntikan Ketergantungan (DIC) adalah alat yang menguruskan dan menyediakan kebergantungan objek untuk digunakan dalam projek PHP. Manfaat utama DIC termasuk: 1. Decoupling, membuat komponen bebas, dan kod itu mudah dikekalkan dan diuji; 2. Fleksibiliti, mudah untuk menggantikan atau mengubah suai kebergantungan; 3. Keseluruhan, mudah untuk menyuntik objek mengejek untuk ujian unit.

SplfixedArray adalah pelbagai saiz tetap dalam PHP, sesuai untuk senario di mana prestasi tinggi dan penggunaan memori yang rendah diperlukan. 1) Ia perlu menentukan saiz apabila membuat untuk mengelakkan overhead yang disebabkan oleh pelarasan dinamik. 2) Berdasarkan pelbagai bahasa C, secara langsung mengendalikan memori dan kelajuan akses cepat. 3) Sesuai untuk pemprosesan data berskala besar dan persekitaran sensitif memori, tetapi ia perlu digunakan dengan berhati-hati kerana saiznya tetap.

PHP mengendalikan fail muat naik melalui pembolehubah fail $ \ _. Kaedah untuk memastikan keselamatan termasuk: 1. Semak kesilapan muat naik, 2. Sahkan jenis dan saiz fail, 3. Mencegah penindasan fail, 4. Pindahkan fail ke lokasi storan tetap.

Dalam JavaScript, anda boleh menggunakan NullcoalescingOperator (??) dan NullcoalescingAssignmentOperator (?? =). 1.? Menerapkan semula operan pertama yang tidak berselisih atau tidak ditentukan. 2.?? Pengendali ini memudahkan logik kod, meningkatkan kebolehbacaan dan prestasi.

CSP adalah penting kerana ia boleh menghalang serangan XSS dan mengehadkan pemuatan sumber, meningkatkan keselamatan laman web. 1.CSP adalah sebahagian daripada tajuk tindak balas HTTP, mengehadkan tingkah laku berniat jahat melalui dasar yang ketat. 2. Penggunaan asas adalah untuk hanya membenarkan sumber pemuatan dari asal yang sama. 3. Penggunaan lanjutan boleh menetapkan lebih banyak strategi halus, seperti membenarkan nama domain tertentu untuk memuat skrip dan gaya. 4. Gunakan header-surcury-policy-report-only header untuk debug dan mengoptimumkan dasar CSP.

Kaedah permintaan HTTP termasuk GET, POST, PUT dan DELETE, yang digunakan untuk mendapatkan, menghantar, mengemas kini dan memadam sumber masing -masing. 1. Kaedah GET digunakan untuk mendapatkan sumber dan sesuai untuk operasi membaca. 2. Kaedah Pos digunakan untuk menyerahkan data dan sering digunakan untuk membuat sumber baru. 3. Kaedah Put digunakan untuk mengemas kini sumber dan sesuai untuk kemas kini lengkap. 4. Kaedah Padam digunakan untuk memadam sumber dan sesuai untuk operasi penghapusan.

HTTPS adalah protokol yang menambah lapisan keselamatan berdasarkan HTTP, yang terutamanya melindungi privasi pengguna dan keselamatan data melalui data yang disulitkan. Prinsip kerjanya termasuk jabat tangan TLS, pengesahan sijil dan komunikasi yang disulitkan. Apabila melaksanakan HTTPS, anda perlu memberi perhatian kepada pengurusan sijil, kesan prestasi dan isu kandungan campuran.


Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Pelayar Peperiksaan Selamat
Pelayar Peperiksaan Selamat ialah persekitaran pelayar selamat untuk mengambil peperiksaan dalam talian dengan selamat. Perisian ini menukar mana-mana komputer menjadi stesen kerja yang selamat. Ia mengawal akses kepada mana-mana utiliti dan menghalang pelajar daripada menggunakan sumber yang tidak dibenarkan.

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Muat turun versi mac editor Atom
Editor sumber terbuka yang paling popular

SublimeText3 versi Inggeris
Disyorkan: Versi Win, menyokong gesaan kod!

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma