php类中引用smarty的问题???
问题概述:
想在类中调用smarty方法,却出现如下错误:
PHP Fatal error: Using $this when not in object context in G:\SVN\YCMS\localhost\core\smarty\sysplugins\smarty_internal_data.php on line 38
下面贴代码,希望各位能帮我下[app/model/home.php已经通过其他页面引入了_Model类]:
app/model/home.php
- PHP code
<!--Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/--><?php /** * Name: app-model-home * Author: yinhexi */if(!defined('IN_MODEL')) die('Access Violation Error:app-model-home!');class home extends _Model { public static function index() { parent::assign('title', 'YCMS'); } }?>
core/model/index.php
- PHP code
<!--Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/--><?php /** * Name: core-model-index * Author: yinhexi */define('IN_MODEL', 1);include_once(Y_CORE.DS.'config'.DS.'smarty.php'); //引入smarty类class _Model extends Smarty { public function __construct() { } //检测相关类中是否存在对应方法 protected function instance($c_f,$c_c_m) { if(!in_array($c_f,get_class_methods($c_c_m))) { die("Model: Class $c_c_m does not exist in Method $c_f!"); } } }?>
core/config/smarty
- PHP code
<!--Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/--><?php /** * Name: core-config-smarty * Author: yinhexi */if(!defined('IN_CORE')) die('Access Violation Error:core-config-smarty!');include_once(Y_CORE.DS.'smarty'.DS.'Smarty.class.php');$smarty = new Smarty();$smarty->template_dir = Y_APP.DS.'view';//设置模版目录$smarty->compile_dir = Y_CACHE.DS."view_c";//设置编译目录$smarty->config_dir = Y_APP.DS.'config'.DS.'smarty';//配置目录变量//$smarty->php_handling = SMARTY_PHP_ALLOW; //不赞成设置为SMARTY_PHP_ALLOW$smarty->left_delimiter = "{";$smarty->right_delimiter = "}";//compile#$smarty->compile_check = false;//编译检查变量//Cache$smarty->caching = true; //缓存模版的输出$smarty->cache_dir = Y_CACHE; //存放模版缓存的目录名#$smarty->cache_lifetime = 1; //缓存生命周期?>
文件关联都没有问题,有些在这没有显示。
提示的错误所指向的是smarty源代码,在此也贴出:
- PHP code
<!--Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/--> public function assign($tpl_var, $value = null, $nocache = false) { if (is_array($tpl_var)) { foreach ($tpl_var as $_key => $_val) { if ($_key != '') { $this->tpl_vars[$_key] = new Smarty_variable($_val, $nocache); } } } else { if ($tpl_var != '') { $this->tpl_vars[$tpl_var] = new Smarty_variable($value, $nocache); } } }
望各位不吝指教!
------解决方案--------------------
assign需要实例化后才能引用,你的类home中有一句,parent::assign()这句其父类根本没有实例化

TheSecretTokeEpingAphp-PowerEdwebSiterUnningSmoothlyShyunderHeavyLoadInVolvOLVOLVOLDEVERSALKEYSTRATICES:1)emplactopCodeCachingWithOpcachingWithOpCacheToreCescriptexecution Time,2)使用atabasequercachingCachingCachingWithRedataBasEndataBaseLeSendataBaseLoad,3)

你应该关心DependencyInjection(DI),因为它能让你的代码更清晰、更易维护。1)DI通过解耦类,使其更模块化,2)提高了测试的便捷性和代码的灵活性,3)使用DI容器可以管理复杂的依赖关系,但要注意性能影响和循环依赖问题,4)最佳实践是依赖于抽象接口,实现松散耦合。

是的,优化papplicationispossibleandessential.1)empartcachingingcachingusedapcutorediucedsatabaseload.2)优化的atabaseswithexing,高效Quereteries,and ConconnectionPooling.3)EnhanceCodeWithBuilt-unctions,避免使用,避免使用ingglobalalairaiables,并避免使用

theKeyStrategiestosiminificallyBoostphpapplicationPermenCeare:1)useOpCodeCachingLikeLikeLikeLikeLikeCacheToreDuceExecutiontime,2)优化AtabaseInteractionswithPreparedStateTemtStatementStatementSandProperIndexing,3)配置

aphpdepentioncontiveContainerIsatoolThatManagesClassDeptions,增强codemodocultion,可验证性和Maintainability.itactsasaceCentralHubForeatingingIndections,因此reducingTightCightTightCoupOulplingIndeSingantInting。

选择DependencyInjection(DI)用于大型应用,ServiceLocator适合小型项目或原型。1)DI通过构造函数注入依赖,提高代码的测试性和模块化。2)ServiceLocator通过中心注册获取服务,方便但可能导致代码耦合度增加。

phpapplicationscanbeoptimizedForsPeedAndeffificeby:1)启用cacheInphp.ini,2)使用preparedStatatementSwithPdoforDatabasequesies,3)3)替换loopswitharray_filtaray_filteraray_maparray_mapfordataprocrocessing,4)conformentnginxasaseproxy,5)

phpemailvalidation invoLvesthreesteps:1)格式化进行regulareXpressecthemailFormat; 2)dnsvalidationtoshethedomainhasavalidmxrecord; 3)


热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

Video Face Swap
使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

热工具

Dreamweaver Mac版
视觉化网页开发工具

SublimeText3 英文版
推荐:为Win版本,支持代码提示!

ZendStudio 13.5.1 Mac
功能强大的PHP集成开发环境

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具