Jadual Kandungan
回复内容:
Rumah pembangunan bahagian belakang tutorial php Segmentfault 用的框架里的Data模式是什么?

Segmentfault 用的框架里的Data模式是什么?

Jun 06, 2016 pm 08:51 PM
php bingkai

Segmentfault 用的框架里的Data模式是什么?

在 http://www.infoq.com/cn/news/2012/09/... 中提到的。

回复内容:

Segmentfault 用的框架里的Data模式是什么?

在 http://www.infoq.com/cn/news/2012/09/... 中提到的。

在SegmentFault框架中我们把Data定义为一个数据管理对象,主要方便在模板中展现。它可以展现单个数据,也可以展现多个数据,这主要是通过继承Iterator接口来实现的迭代器功能。比如我们展示下从数据库取出数据到页面展示的效果

在Action中我们会这样写

// 从model中取出数据
$questions = $this->questionModel->listQuestions();

// 将数组放入迭代器
$this->questions = new Data_Question($questions);

// 展现模板
$this->view->render('questions.php');
Salin selepas log masuk

到View中我们就可以操作Data_Question对象了

<?php foreach($questions as $q): ?>
<h2><a href="&lt;?php%20%24q-&gt;url();%20?&gt;"><?php $q->title(); ?&gt;</a></h2>
<p><?php $q->summary(100, '...'); ?&gt;</p>
<?php endforeach; ?>
Salin selepas log masuk

可以看出来它的用法大大简化直观,你不需要echo了,因为我们在Data基类中帮你用__call函数实现了通过字段名作为方法名直接输出的工作,当然你也可以echo $q-&gt;title,因为我们也对__get函数做了处理,你可以直接调用当前的字段。

更重要的是配合缓存技术的使用,我们可以达到非常梦幻的方法,比如问题作者$q-&gt;user,它可以直接返回一个Data_User的对象,那么我们就可以做到使用的时候再查询,想用什么数据就写什么数据,比如我们输出每个问题的作者相关信息

<a href="&lt;?php%20%24q-&gt;user-&gt;url();%20?&gt;"><?php $q-&gt;user-&gt;name(); ?&gt; . <?php $q-&gt;user-&gt;rank(); ?&gt;</a>
Salin selepas log masuk

这只是些最基本的用法,还有更多复杂的用法就不一一介绍了,比如输出字段的时候可以带参数等等

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Tag artikel panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Panduan Pemasangan dan Naik Taraf PHP 8.4 untuk Ubuntu dan Debian Panduan Pemasangan dan Naik Taraf PHP 8.4 untuk Ubuntu dan Debian Dec 24, 2024 pm 04:42 PM

Panduan Pemasangan dan Naik Taraf PHP 8.4 untuk Ubuntu dan Debian

Tarikh dan Masa CakePHP Tarikh dan Masa CakePHP Sep 10, 2024 pm 05:27 PM

Tarikh dan Masa CakePHP

Muat naik Fail CakePHP Muat naik Fail CakePHP Sep 10, 2024 pm 05:27 PM

Muat naik Fail CakePHP

Penghalaan CakePHP Penghalaan CakePHP Sep 10, 2024 pm 05:25 PM

Penghalaan CakePHP

Bincangkan CakePHP Bincangkan CakePHP Sep 10, 2024 pm 05:28 PM

Bincangkan CakePHP

Konfigurasi Projek CakePHP Konfigurasi Projek CakePHP Sep 10, 2024 pm 05:25 PM

Konfigurasi Projek CakePHP

Panduan Ringkas CakePHP Panduan Ringkas CakePHP Sep 10, 2024 pm 05:27 PM

Panduan Ringkas CakePHP

Pengesah Mencipta CakePHP Pengesah Mencipta CakePHP Sep 10, 2024 pm 05:26 PM

Pengesah Mencipta CakePHP

See all articles