筹备 淩亂°似流年 2022-07-24 12:09 130阅读 0赞 1. 扩展: fec fecadmin 2. 组件: url,menu,category,product,cart,order,account,productReview,productSearch,cms,coupon,customerAddress,payment,shipping, email, 3.模块: Core, Cms, Catalog(category,product), ProductSearch, ProductReview, Checkout, Payment, Account, Coupon, Currency, Cron, ImportExport, Newsletter, Sitemap, Wishlist, contacts, Report, 4.Layout layout_1column.php layout_2columns_left.php layout_2columns_right.php layout_3columns.php Layout的content是由controller返回的数组数值,以及对应的views文件生成的html返回。 left 是由 模块里面的配置 通过UrlKey对应的Params配置,譬如modules params配置如下: params =>[ 'catalog/product/index' =>[ 'left' => [ ['程序体1'=>'view1'], ['程序体2'=>'view2'], ], <pre name="code" class="html"> 'right'=>\[ // xxxx.... \],\] 根据这个配置,也就是在catalog/product/index的时候left由上面的各个块来完成 5. 块: \['程序体1'=>'view1'\] 程序体 和 view 共同组成一个整体,来生成一块有 php ob 递归嵌套: public function dd($i){ $i--; if($i > 0){ ob_start(); echo "test".$i; $str = ob_get_clean(); return $str.$this->dd($i); }else{ return 22; } } public function actionIndex(){ ob_start(); echo "Hellon/"; //输出 echo $this->dd(6); ob_end_flush();//输出全部内容到浏览器 exit; } php 文件和view文件合并的方法: public function renderPhpFile($_file_, $_params_ = []) { ob_start(); ob_implicit_flush(false); extract($_params_, EXTR_OVERWRITE); require($_file_); return ob_get_clean(); } 通过上面的两个方式来生成tab块。 htmltab分为程序代码部分和html显示部分,程序代码部分通过getLastData()返回数组param,然后html部分用变量来生成动态数据,以及和自身的html,生成最终的tab html,然后被加载 总之,代码块可以看成一个独立的tab。 6 总之, 从主动权上面来看,layout 是主动权的顶级,各个不同的controller 填充conteng部分,通过urlkey对应的left right 填充对应的区域, 然后就是公用部分,譬如页面的头部和尾部。当然,各个不同的layout 可以有模块配置,让其选择不同的layout。 主动权是从前端部分Layout和配置部分config开始,也就是说,Layout 和 Config 来做主动控制,来选择对应的模块,虽然动作由模块的controller发起,但是config 可以换掉controller,action ,或者通过配置改动当前controller的行为,虽然动作由模块执行处理数据,但是政策还是由config控制,由Layout获取进而生成数据,从这里看config相当于法律法规,layout相当于统一管理的执行者,生成最终界面。 到这里可以看出来,模块,插件,组件,都是通过config文件进行控制,最终由layout调用。生成最终界面,这才是正确的系统架构思想,由于layout和config掌握在前端手里,因此,系统的升级不会带来太多的麻烦。 总之,一个好的系统,解决 系统的 二次开发 和 产品升级的矛盾(通过配置,更改文件路径), 产品自身升级的代码的问题以及数据库升级的问题(通过composer和yii2的migration解决)。让前端控制做主导,让控制反转,让使用者成为主权的统治者。 二:详细: 1. 通用,可以被其他的系统使用的部分做成扩展 1.1. fecadmin 扩展的完善,加入gii,使用文档等 1.2. fec 扩展的完善。 一些功能做成系统组件:URLRewrite,也就是说,需要配置的功能,做成组件的城市,方面以后的调用。 通过一个php后端类和一个前端view文件,生成一个tab块的功能。 2. 数据库使用migrate 各个组件,各个模块,各个扩展的migration 通过脚本进行整合到一起。 通过一个shell脚本依次执行各个migrate,完成数据的安装以及日后的升级,当然,这里包括mysql和mongodb, 3.通过fecadmin建立好后台,然后建表,做数据的维护,包括:产品,分类,用户中心,评论 ,cms page,staticblock order, cart等。这个通过appadmin加载,各个功能 做成模块的形式 然后做前端功能,从config 获取当前的 theme 和layout.php进而获取当前的layout content由当前controller生成 left right由各个tab生成。各个tab在各个页面可以公用 做好可以二次开发更改系统的controller文件等的设定。 客户的二次开发文件路径, 统一写到app/code/local中,按照文件路径对系统的文件进行重新设定。 theme统一放到app/theme/xxxx/下面
相关 工业4.0时代,怎样为孩子筹备未来教育? 看最近一篇网络上的文章《工业4.0时代,怎样为孩子筹备未来的教育?》有感而发。 -------------------- 从不看小说的我,最近在看一部小说。 不念不忘少年蓝@/ 2022年08月18日 00:40/ 0 赞/ 158 阅读
相关 读《工业4.0时代,怎样为孩子筹备未来的教育》有感 互联网时代的飞速发展给社会发展带来了空前的发展,新时代已经开启,我们却很少有人才意识到它的深刻意义,他将如何改变我们的世界。 文章借用经典 快来打我*/ 2022年08月17日 15:25/ 0 赞/ 215 阅读
相关 工业4.0时代,怎样为孩子筹备未来的教育? 既上一篇文章之后又看到一篇文章关于教育的,当今日新月异的生活,给我们带来高质的生活的同时也引发了我们深刻的思考。 今天,即使你幽居偏远山沟,通过视频,也可以面对面地和 迈不过友情╰/ 2022年08月17日 14:28/ 0 赞/ 154 阅读
相关 筹备 1. 扩展: fec fecadmin 2. 组件: url,menu,category,product,cart,order,ac 淩亂°似流年/ 2022年07月24日 12:09/ 0 赞/ 131 阅读
还没有评论,来说两句吧...