php中嵌套调用的原理,嵌套调用

## 嵌套调用

- 模块与模块之间的相互调用(相对路径)

- 项目和项目之间的相互调用(绝对路径)

- 也可以写一个通用模块就可以大面积使用,减少代码维护成本

- 或许可以实现一些神奇的效果

#### 示例代码

设置文件/html/www/demo/tpl/tpl.blade.php内容如下

~~~

这是最顶端模块

{!! tpl('a') !!}

{!! tpl('a/aa', ['get' => ['name' => 'GET参数来自顶部模块'], 'post' => ['name' => 'POST参数来自顶部模块']]) !!}

{!! tpl('c') !!}

{!! tpl('e') !!}

#以下是全局调用示例
#这样就可以跨项目相互调用

{!! tpl('/www/demo/tpl/c') !!}

~~~

设置文件/html/www/demo/tpl/tpl.css内容如下

~~~

_CLASS_{

width: 500px;

}

~~~

设置文件/html/www/demo/tpl/a/tpl.blade.php内容如下

~~~

a模块

{!! tpl('aa', ['get' => ['name' => 'GET参数来自a模块'], 'post' => ['name' => 'POST参数来自a模块']]) !!}

~~~

设置文件/html/www/demo/tpl/a/tpl.css内容如下

~~~

_CLASS_{

color:#F00;

}

~~~

设置文件/html/www/demo/tpl/a/aa/tpl.blade.php内容如下

~~~

aa模块:{{$_GET['name']}},{{$_POST['name']}}

~~~

设置文件/html/www/demo/tpl/a/aa/tpl.css内容如下

~~~

_CLASS_{

background-color: #FEE;

}

~~~

设置文件/html/www/demo/tpl/c/tpl.blade.php内容如下

~~~

c模块

{!! tpl('../a/aa', ['get' => ['name' => 'GET参数来自c模块'], 'post' => ['name' => 'POST参数来自c模块']]) !!}

~~~

设置文件/html/www/demo/tpl/c/tpl.css内容如下

~~~

_CLASS_{

color:#08F;

}

~~~

设置文件/html/www/demo/tpl/e/tpl.blade.php内容如下

~~~

e模块

{!! tpl('ee', ['get' => ['name' => 'GET参数来自e模块'], 'post' => ['name' => 'POST参数来自e模块']]) !!}

~~~

设置文件/html/www/demo/tpl/e/tpl.css内容如下

~~~

_CLASS_{

color:#080;

}

~~~

设置文件/html/www/demo/tpl/e/ee/_init.php内容如下

~~~

return function (){

$get_name = $_GET['name'];

$post_name = $_POST['name'];

echo "

--- {$get_name} | {$post_name} ----
";

};

~~~

设置文件/html/www/demo/tpl/e/ee/tpl.blade.php内容如下

~~~

ee模块

~~~

设置文件/html/www/demo/tpl/e/ee/tpl.css内容如下

~~~

_CLASS_{

background-color: #CCF;

}

~~~

打开网址[http://demo.tphp.com/tpl](http://demo.tphp.com/tpl)获得如下效果

![](https://box.kancloud.cn/443db1fd2a2cbda2d6b1f34add6ee23b_565x357.png)

生成源代码

![](https://box.kancloud.cn/a6c2a932283b76e173dd3e6735d992b9_783x711.png)

生成的CSS

![](https://box.kancloud.cn/8c0a49132734564506aa801ce144010a_578x507.png)

生成的JS(未设置tpl.js,所以没有js代码)

这是总页面路径,当然所有的子页面同样可以单独访问,比如:

打开网址[http://demo.tphp.com/tpl/c](http://demo.tphp.com/tpl/c)获得如下效果

![](https://box.kancloud.cn/7def0ae08c063ed67d690eb77e298139_568x127.png)

- 嵌套的页面有点多,页面嵌套、CSS嵌套放到一起就会有点绕,需耐心体会

- JS嵌套也是一样,这里就不举例了

- 虽然调用的有点多,但逻辑清晰,很容易控制模块与模块之间的关系,模块之间的class自动指向,无需记住样式名称,所以这里SCSS就发挥了极大的作用,只要写一次_CLASS_就能够实现自动指向,SCSS写法如下:

~~~

_CLASS_{

.child_1{

...

}

.child_2{

...

}

background-color: #CCF;

}

~~~

将转换为:

~~~

_CLASS_{

background-color: #CCF;

}

_CLASS_ .child_1{

...

}

_CLASS_ .child_2{

...

}

~~~

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/375998.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

SET-UID程序漏洞实验

20125102 一、实验描述 Set-UID 是Unix系统中的一个重要的安全机制。当一个Set-UID程序运行的时候,它被假设为具有拥有者的权限。例如,如果程序的拥有者是root,那么任何人运行这个程序时都会获得程序拥有者的权限。Set-UID允许我们做许多很有…

统计文件中有多少个单词amp;c语言实现

假设文件中的单词都是字母的组合&#xff0c;且单词间用空格或者“."区分。实验环境&#xff1a;Dev-C#include<stdio.h> #include<stdlib.h>int main(){FILE *fp;int i;int fr;long fsize;int word0;int sum0;char filename[20];char *buffer;printf("要…

oracle mul,汇编语言乘指令 MUL、IMUL的具体使用

MUL: 无符号乘;影响 OF、CF 标志位;指令格式:;MUL r/m ;参数是乘数;如果参数是 r8/m8, 将把 AL 做乘数, 结果放在 AX;如果参数是 r16/m16, 将把 AX 做乘数, 结果放在 EAX;如果参数是 r32/m32, 将把 EAX 做乘数, 结果放在 EDX:EAX当乘积的高半部分(AH、DX、EDX、RDX)中存有结…

java实验二

课程&#xff1a;Java程序设计 班级&#xff1a; 1352 姓名&#xff1a;黄卫   学号&#xff1a;20135221 成绩&#xff1a; 指导教师&#xff1a;娄嘉鹏 实验日期&#xff1a;2015.05.05 实验密级&#xff1a; 预…

两数之和c语言实现

题目描述&#xff1a;给定一个整数数组和一个目标值&#xff0c;找出数组中和为目标值的两个数。你可以假设每个输入只对应一种答案&#xff0c;且同样的元素不能被重复利用。示例:给定 nums [2, 7, 11, 15], target 9因为 nums[0] nums[1] 2 7 9 所以返回 [0, 1]解题思路…

【Linux】正确的关机方法

1&#xff09;shutdown命令 我们较常使用的是shutdown这个命令&#xff0c;这个命令可以安全地关闭或重启Linux系统&#xff0c;它在系统关闭之前给系统上的所有登录用户提示一条警告信息。该命令还允许用户指定一个时间参数&#xff0c;可以是一个精确的时间&#xff0c;也可以…

oracle 存储过程写文件,Oracle写本地文件

Oracle写本地文件是指写到运行Oracle的主机上&#xff0c;而不是运行该脚本的机器上。说起来有点拗口&#xff0c;实际上就是无论在哪里执行这个过程&#xff0c;生成的文件始终都是在服务器上的。下面过程实现了这个功能&#xff1a;logdir是指文件存放路径。有Oracle的direct…

两数相加c语言实现

给定两个非空链表来表示两个非负整数。位数按照逆序方式存储&#xff0c;它们的每个节点只存储单个数字。将两数相加返回一个新的链表。你可以假设除了数字 0 之外&#xff0c;这两个数字都不会以零开头。示例&#xff1a;输入&#xff1a;(2 -> 4 -> 3) (5 -> 6 -&g…

jQuery获取Select选择的Text和Value

一、 jQuery获取Select选择的Text和Value:语法解释&#xff1a; $("#select_id").change(function(){//code...}); //为Select添加事件&#xff0c;当选择其中一项时触发varcheckText$("#select_id").find("option:selected").tex…

jquery实现导航栏鼠标点击后实行背景高亮,点击离开恢复(超级简单!!!!)...

昨天才写了一个方法&#xff0c;今天发现一个更简单的。 html&#xff1a; <!DOCTYPE html> <html> <head lang"en"><meta charset"UTF-8"><title></title> </head> <body> <div class"dianji&qu…

Linux怎么处理binray文件,Linux下如何反汇编arm raw binary文件

有一个arm elf文件经过objcopy -O binary 命令处理生成bin文件进行反汇编:指令1&#xff1a;arm_v5t_le-objdump -b binary -m armv5te -D u-boot.bin|head指令2&#xff1a;arm-linux-objdump -D -b binary test.bin --architecturearm > /tmp/raw.txthttp://linux.chi…

putty连虚拟机中Linux出现Access Denied

环境&#xff1a;VMwarekali Linux出现这个问题&#xff0c;肯定是你想尝试直接通过使用root账户连接你的linux&#xff0c;这样肯定是不行的&#xff0c;why&#xff1f;为了保证服务器安全&#xff0c;几乎所有的服务器都禁止了超级用户直接登录系统&#xff0c;而是通过普通…

Floyd算法应用-医院选址问题

1)问题描述 n个村庄之间的交通图可以用有向网图来表示&#xff0c;图中边<vi, vj>上的权值表示从村庄i到村庄j的道路长度。现在要从这n个村庄中选择一个村庄新建一所医院&#xff0c;问这所医院应建在哪个村庄&#xff0c;才能使所有的村庄离医院都比较近&#xff1f; 2)…

linux ls 命令排序,如何在Linux中使用ls命令按大小对所有文件进行排序

ls命令是列出目录内容的最流行且非常有用的命令。 在本文中&#xff0c;我们将解释如何使用ls sort选项按大小列出目录内容。1)按大小列出目录中的文件(排序)要列出具有大小排序的特定目录的内容&#xff0c;我们将使用-lS选项和ls命令。 它将在顶部显示最大的文件。[linuxidcl…

C​#​获​取​当​前​时​间​的​各​种​格​式

C#获取当前时间的各种格式 DateTime.Now.ToShortTimeString() DateTime dt DateTime.Now; dt.ToString();//2005-11-5 13:21:25 dt.ToFileTime().ToString();//127756416859912816 dt.ToFileTimeUtc().ToString();//127756704859912816 dt.ToLocalTime().ToString(…

基于tcp connect的端口扫描程序

原理&#xff1a;connect()函数用于对于每一个感兴趣的目标计算机的端口进行连接&#xff0c;如果该端口处于侦听状态&#xff0c;那么connect()就会成功&#xff0c;即没有提供服务。如果对于每一个目标端口以串行的方式使用单独的connect()调用&#xff0c;需要较长的时间&am…

UIScrollView

一、UIScrollView 1.常见属性 property(nonatomic) CGPoint contentOffset; // 记录UIScrollView滚动的位置 property(nonatomic) CGSize contentSize; // 内容尺寸&#xff08;能滚动的范围&#xff09; property(nonatomic) UIEdgeInsets contentInset; // 额外增加的滚动区域…

linux如何运行多个硬盘,一个硬盘如何装两个Linux

1个硬盘已安装Fedora 8 Linux系统&#xff0c;并安装grub引导管理程序&#xff0c;现要在这个硬盘的空闲分区中安装Fedora 9&#xff0c;操作如下&#xff1a;1.将Fedora-9-i386-DVD.iso文件放到一个Windows Fat32分区((hd0,4))的根目录&#xff0c;将这个iso文件中的isolinux目…

APIO2015 酱油记

Day 0 昨天CTSC才比完&#xff0c;当然是要浪啦&#xff01; 于是浪了一天。。。午饭都没吃。。。 晚饭。。。貌似也没吃。。。 晚上的时候觉得这样子浪不太好&#xff0c;还是要认真一下&#xff0c;打开bzoj&#xff0c;弃疗了。。。还是浪吧。。。 Day 1 今天要讲课&#xf…

宏定义 #define 和常量 const 的区别

学习笔记&#xff01;参考链接 一、类型和安全检查不同宏定义是字符替换&#xff0c;没有数据类型的区别&#xff0c;同时这种替换没有类型安全检查&#xff0c;可能产生边际效应等错误&#xff1b;const常量是常量的声明&#xff0c;有类型区别&#xff0c;需要在编译阶段进行…