• memcache 入门一

    php 使用memcache 将变量存储到内存中以加快程序运行速度,要使用memcache 需要先安装配置对应的模块,使用memcache不需要像session那样在实现多主机共享时进行负责的控制判断,实时性高效的memcache让分布 式架构处理共享信息更轻松。先看一个官网的实例吧

     
    $memcache = new Memcache;
    $memcache->connect('localhost', 11211) or die ("Could not connect");
     
    $version = $memcache->getVersion();
    echo "Server's version: ".$version."
    \n";
     
    $tmp_object = new stdClass;
    $tmp_object->str_attr = 'test';
    $tmp_object->int_attr = 123;
     
    $memcache->set('key', $tmp_object, false, 10) or die ("Failed to save data at the server");
    echo "Store data in the cache (data will expire in 10 seconds)
    \n";
     
    $get_result = $memcache->get('key');
    echo "Data from the cache:
    \n";
     
    var_dump($get_result);
     

    可以看到新建一个memcache对象后可以是用 set  get  轻松的设置和获取内存中的变量,

    Memcache面向对象的常用接口包括:
    Memcache::connect — 打开一个到Memcache的连接
    Memcache::pconnect — 打开一个到Memcache的长连接
    Memcache::close — 关闭一个Memcache的连接
    Memcache::set — 保存数据到Memcache服务器上
    Memcache::get — 提取一个保存在Memcache服务器上的数据
    Memcache::replace — 替换一个已经存在Memcache服务器上的项目(功能类似Memcache::set)
    Memcache::delete — 从Memcache服务器上删除一个保存的项目
    Memcache::flush — 刷新所有Memcache服务器上保存的项目(类似于删除所有的保存的项目)
    Memcache::getStats — 获取当前Memcache服务器运行的状态
    Memcache::getVersion   获取当前服务器memcache版本信息
    memcache_debug()  开启或关闭调试
    Memcache 类 相关信息如下

    Memcache {
    bool add ( string $key , mixed $var [, int $flag [, int $expire ]] )
    bool addServer ( string $host [, int $port = 11211 [, bool $persistent [, int $weight [, int $timeout [, int $retry_interval [, bool $status [, callback $failure_callback [, int $timeoutms ]]]]]]]] )
    bool close ( void )
    bool connect ( string $host [, int $port [, int $timeout ]] )
    int decrement ( string $key [, int $value = 1 ] )
    bool delete ( string $key [, int $timeout = 0 ] )
    bool flush ( void )
    string get ( string $key [, int &$flags ] )
    array getExtendedStats ([ string $type [, int $slabid [, int $limit = 100 ]]] )
    int getServerStatus ( string $host [, int $port = 11211 ] )
    array getStats ([ string $type [, int $slabid [, int $limit = 100 ]]] )
    string getVersion ( void )
    int increment ( string $key [, int $value = 1 ] )
    mixed pconnect ( string $host [, int $port [, int $timeout ]] )
    bool replace ( string $key , mixed $var [, int $flag [, int $expire ]] )
    bool set ( string $key , mixed $var [, int $flag [, int $expire ]] )
    bool setCompressThreshold ( int $threshold [, float $min_savings ] )
    bool setServerParams ( string $host [, int $port = 11211 [, int $timeout [, int $retry_interval = false [, bool $status [, callback $failure_callback ]]]]] )

    }


    上面的翻译只罗列了一些常用的方法,需要具体资料的可以参考php官方文档http://cn2.php.net/manual/en/book.memcache.php

  • MySQL使用phpMyAdmin导入数据时提示最大执行时间300

    使用phpMyAdmin 对mysql数据库进行管理的相信不在少数,但是phpmyadmin中的一些默认设置 往往会让人很头疼,  最常见的需要修改的就是 默认的config中  登录数据库是否需要密码的问题,相信这个很多人都有碰到过,这边顺便提下,在phpmyadmin根目录下的config.inc.php  文件中修改,如果该文件不存在 那么可以复制config.sample.inc.php后重命名即可,然后修改$cfg['Servers'][$i] ['AllowNoPasswordRoot'] = false;  即可

    另外一个就是在导入大数据库是的sql最大执行时间限制,错误提示maximum execution time 300s … 具体的也忘了做记录了。。。       通常情况下碰到这个问题,我们直接修改php.ini中的    max_execution_time 的数值就可以了,但是实际操作时,重启了n次 wamp  居然还是会有问题, 无奈只好 全目录搜索300(因为对phpMyAdmin的配置也不了解)终于发现 在phpMyAdmin中   libraries/config.default.php文件中有一个 $cfg['ExecTimeLimit'] = 300; 的配置参数 ,ok 就是它了,调整数值后 刷新页面(保险起见还是重启下wamp)重新导入数据,成功  :-)

  • 关于Magento 1.6后台订单中无法正常显示产品选项的bug

    环境 Magento 1.6.0.1   及  1.6.1.0

    Magento1.6 下单之后  管理员无法在后台查看客户所选的产品自定义选项,如: 只出现size 选项但没有输出值。 这个小小的bug对卖家的影响可想而知咯。。。。

    这边做一个简单的修改就可以了

    app/design/adminhtml/default/default/template/sales/items/column/name.phtml

    修改约位于44行左右的 代码如下
    <?php else: ?>
    <?php //$_option = $this->getFormattedOption($_option['value']); ?>

    即 注释 对$_option 的重新赋值代码段

    细节这边也不深究了,暂停留于表象吧 :-)

  • Magento产品查看页修改页面标题

    这边以在产品查看页修改标题   添加价格为例

    修改文件 app\code\core\Mage\Catalog\Block\Product\View.php

    找到 _prepareLayout() 函数

    修改代码如下

    //if ($title) {
    //    $headBlock->setTitle($title);
    //}
    $s_price = $product->getPrice();
    if(!$title) $title = $headBlock->getTitle();
    if($s_price) {
    $s_price = strip_tags(Mage::app()->getStore()->formatPrice($s_price));
    $title .= ‘ -  Price ‘.$s_price;
    }
    $headBlock->setTitle($title);

    测试版本 Magento 1.5.0.1  1.6.1.0,至于个中需求,可参考自行调整 :-)

  • Magento模板解决多语言样式问题

    多语言下,样式可能会由于字符串的长短而出现差异

    因此 要解决,不同语言样式差异的问题   直接的思路就是通过判断语言   进而控制 样式

    通过参考 page/switch/language.phtml 及其 所对应静态块中的方法,  我们可以在整体布局的body 标签中添加 不同语言所对应的类名标识, 进而达到控制样式的目的。

    修改模板布局 2columns-left.phtml (当然 ,如果你的模板几个布局都有用到那就都添加一下吧)

    这边直接取序号   $cs_id = Mage::getBlockSingleton(‘page/switch’)->getCurrentStoreId();

    在body 标签的class  中添加特定的类

    1
    <body<?php echo $this->getBodyClass()?' class="'.$this->getBodyClass().' cs-'.$cs_id.'"':'' ?>>

    保存后刷新,切换语言  查看对应的 body类名,书写样式 即可 :-)

click
©2010-2024 Jeen All Rights Reserved.Powered by emlog 京ICP备15058100号-1