[PHP] Solution for writing a function layer between pecl-memcache and PHP

Nathan Nobbe quickshiftin at gmail.com
Fri Jul 27 18:38:12 UTC 2007


judging by the method invocation you have shown

site::memcache($pointername, $dataset);

that indicates site is a class and memecahce is a method defined in site,
which is being invoked statically in this case.
and in the definition of memecache you showed, the definition does not have
the static keyword, therefore you
should not be invoking it from a static context.
from the documentation on the static keyword
Calling non-static methods statically generates an E_STRICT level warning.

its not a solution to your problem but it is a point on proper style.

-nathan

On 7/27/07, Sascha Braun - CEO @ Braun Networks <sascha at braun-networks.com>
wrote:
>
> Hi dear Sancar,
>
> you seem really the best man in place as what I see in the mailing
> list :)) Thats really lovely I would like to say.
>
> Now lets come to the solution I need:
>
> public function memcache($pointer, $data="", $compress="", $timeout="0")
> // store or load data from the memcache
> {
> if (MEMCACHE_SUPPORT == 'true') {
> $memcached_port = $_SESSION['memcache_port'];
> if (empty($memcached_port)) { $memcached_port = '99999'; }
> $memcache = memcache_connect('localhost', $memcached_port);
> if ($memcache) {
> $memcache_pointer = PROJECT.$pointer;
> $cache = $memcache -> get($memcache_pointer);
> if (!$cache) {
> $memcache->set($memcache_pointer,$data);
> $cache = $memcache -> get($memcache_pointer);
> }
> return $cache;
> }
> }
> }
>
> This is the Funktion I use to load and write data to the memcache
> a write or restore looks like this here site::memcache('pointer',$data);
>
> This is working in many cases pretty fine.
>
> Now I have a codepart, where the 'pointer' is getting created dynamical-
> ly. Which means I do fx. a $content_id.'_'.$translation instead of wri-
> ting a simple 'pointer' as first parameter to the above function.
>
> When I now call my XML Parser, to store data in memcache, and try to
> recall, the data short after, it says:
>
> File not found: This file somewhere in the suburbs.
>
> But when I try to output the XML Object before the data is written to
> the cache, everything goes terribly fine.
>
> Now I figured out, that when I use static naming for the memcache data
> pointer 'pointer' everything goes fine.
>
> When I use the memcache directly, which means, I call the
> $memcache->set() and $memcache->get() function from where I store data
> everything goes fine again, even with dynamically created, variables.
>
> But as soon as I use my function layer, call a to
> site::memcache($pointername,$dataset); only  returnes bullshit.
>
> Mh, this makes me a little bit sad.
>
> Maybe somebody or even you, can help me :))
>
> Best Regards, and a baba Respect from Germany, Dear Sancar!
>
> Sascha
>
> --
> PHP General Mailing List (http://www.php.net/)
> To unsubscribe, visit: http://www.php.net/unsub.php
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.danga.com/pipermail/memcached/attachments/20070727/dafacc0b/attachment.htm


More information about the memcached mailing list