{"id":23607,"date":"2013-06-08T12:49:47","date_gmt":"2013-06-08T12:49:47","guid":{"rendered":"https:\/\/wordpress.org\/plugins-wp\/em-object-cache\/"},"modified":"2013-07-08T21:01:37","modified_gmt":"2013-07-08T21:01:37","slug":"em-object-cache","status":"closed","type":"plugin","link":"https:\/\/wordpress.org\/plugins\/em-object-cache\/","author":2864227,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"2.1","stable_tag":"trunk","tested":"3.6.1","requires":"3.0","requires_php":"","requires_plugins":"","header_name":"EM Object Cache","header_author":"Vladimir Kolesnikov","header_description":"","assets_banners_color":"","last_updated":"2013-07-08 21:01:37","external_support_url":"","external_repository_url":"","donate_link":"http:\/\/TBD","header_plugin_uri":"http:\/\/blog.sjinks.pro\/wordpress\/plugins\/776-sj-object-cache-faster-object-cache-for-wordpress\/","header_author_uri":"http:\/\/www.extrememember.com\/","rating":4.4,"author_block_rating":0,"active_installs":50,"downloads":6645,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":[],"upgrade_notice":{"":"<p>If upgrading from WP File Cache or SJ Object Cache, please deactivate and remove them first, the activate EM Object Cache.<\/p>\n\n<p>If upgrading from EM Object Cache 2.0, please note that the plugin path has changed (<code>em_object_cache<\/code> =&gt; <code>em-object-cache<\/code>).\nThios is because &quot;an underscore character is not valid in a path, therefore you can&#039;t have em_object_cache as the plugin&#039;s slug. Only alphanumeric characters and the dash are valid.&quot;\nTherefore please uninstall EMOC 2.0 completely and then install 2.1 from the wordpress.org.<\/p>"},"ratings":{"1":"1","2":0,"3":0,"4":"1","5":"6"},"assets_icons":[],"assets_banners":[],"assets_blueprints":{},"all_blocks":[],"tagged_versions":[],"block_files":[],"assets_screenshots":[],"screenshots":[],"jetpack_post_was_ever_published":false},"plugin_section":[],"plugin_tags":[3888,146,7913,247,3887],"plugin_category":[52,54],"plugin_contributors":[85001],"plugin_business_model":[],"class_list":["post-23607","plugin","type-plugin","status-closed","hentry","plugin_tags-apc","plugin_tags-cache","plugin_tags-object-cache","plugin_tags-performance","plugin_tags-xcache","plugin_category-performance","plugin_category-security-and-spam-protection","plugin_contributors-extrememember","plugin_committers-extrememember"],"banners":[],"icons":{"svg":false,"icon":"https:\/\/s.w.org\/plugins\/geopattern-icon\/em-object-cache.svg","icon_2x":false,"generated":true},"screenshots":[],"raw_content":"<!--section=description-->\n<p>The plugin implements object level persistent caching and can be used instead of the built in WordPress <code>WP_Object_Cache<\/code>.\nUnlike WP Super Cache, Hyper Cache and other plugins, EM Object Cache does not cache the entire page; instead, it caches the data WordPress explicitly asks it to cache (using <code>wp_cache_xxx()<\/code> API functions).\nAlthough this means that the performance will be less than with, say, WP Super Cache, all your pages remain dynamic.<\/p>\n\n<p>EM Object Cache won't help you much if the plugins or theme you are using do not use <a href=\"http:\/\/codex.wordpress.org\/Class_Reference\/WP_Object_Cache\">WordPress Cache API<\/a>.\nThis is by design, since the plugin tries to play nice. However, for most WordPress installations this will not be critical.<\/p>\n\n<p>EM Object Cache significantly reduces the load from your database. Say, my blog's home page without the plugin\nexecutes 24 queries (0.02403 sec); with the plugin enabled, only 4 queries (0.00188 sec).\nUnlike DB Cache\/DB Cache Reloaded, the plugin will work in the Admin Panel and supports all plugins that use WordPress Cache API.<\/p>\n\n<p>This plugin is the successor of <a href=\"http:\/\/blog.sjinks.pro\/wordpress-plugins\/wp-file-cache\/\">WP File Cache<\/a> and <a href=\"http:\/\/blog.sjinks.pro\/wordpress\/plugins\/776-sj-object-cache-faster-object-cache-for-wordpress\/\">SJ Object Cache<\/a> and is based on their codebases.<\/p>\n\n<p><em>CAVEATS:<\/em>\n* if you want to use FileCache caching engine, chances are that the plugin will not work when PHP safe mode is enabled and web server is operated by a different user than owns the files.<\/p>\n\n<h3>Deactivation\/Removal<\/h3>\n\n<ol>\n<li>Please make sure that <code>wp-content<\/code> directory is writable by the web server: the plugin will need to delete <code>object-cache.php<\/code> from it.<\/li>\n<li>Deactivate\/uninstall the plugin in the 'Plugins' menu in WordPress.<\/li>\n<li>Please verify that <code>wp-content\/object-cache.php<\/code> file was removed.<\/li>\n<\/ol>\n\n<!--section=installation-->\n<ol>\n<li>Upload <code>em-object-cache<\/code> folder to the <code>wp-content\/plugins\/<\/code> directory.<\/li>\n<li>Please make sure that <code>wp-content<\/code> directory is writable by the web server: the plugin will need to copy <code>object-cache.php<\/code> file into it.<\/li>\n<li>Please make sure that <code>wp-content\/plugins\/em-object-cache<\/code> directory is writable by the web server: the plugin will store its configuration (<code>options.php<\/code>) there.<\/li>\n<li>Activate the plugin in the 'Plugins' menu in WordPress.<\/li>\n<li>Make sure that <code>wp-content\/object-cache.php<\/code> file exists. If it is not, please copy it from <code>wp-content\/plugins\/em-object-cache\/object-cache.php<\/code><\/li>\n<li><code>wp-content\/object-cache.php<\/code> file wust me writable by the server since plugin stores its options in that file.<\/li>\n<li>That's all :-)<\/li>\n<\/ol>\n\n<p><em>WARNING:<\/em> if you are upgrading from 2.0, please make sure to read \"Upgrade Notice\".<\/p>\n\n<!--section=faq-->\n<dl>\n<dt>The plugin does not work with Custom Field Template plugin.<\/dt>\n<dd><p>This is because Custom Field Template maintains its own cache for the post meta data which gets out of sync with WordPress cache. Please add <code>cft_post_meta<\/code> to the list of the non-persistent groups (EM Object Cache &gt; Generic Options)<\/p><\/dd>\n<dt>After activation of FileCache engine, I see an error: \"Warning: file_exists(): open_basedir restriction in effect. File(`filename`) is not within the allowed path(s)\". What to do?<\/dt>\n<dd><p>A1: Try to get rid of <code>open_basedir<\/code> form your php.ini\/Apache config. <code>open_basedir<\/code> is considered a \"broken\" security measure anyway and only slows down file operations.<\/p>\n\n<p>A2: If disabling <code>open_basedir<\/code> is not an option, set the <code>Cache location<\/code> under the EM Object Cache &gt; FileCache to the directory that satisfies the <code>open_basedir<\/code> restriction.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>EMOC 2.1 (Jul 08, 2013)<\/h4>\n\n<ul>\n<li>Changed all paths from <code>em_object_cache<\/code> to <code>em-object-cache<\/code> due to WP requirements (\"an underscore character is not valid in a path, therefore you can't have em_object_cache as the plugin's slug. Only alphanumeric characters and the dash are valid.\").<\/li>\n<\/ul>\n\n<h4>EMOC 2.0 (Jun 08, 2013)<\/h4>\n\n<ul>\n<li>First public release of EM Object Cache<\/li>\n<li>Work around a weird bug when $_wp_using_ext_object_cache somehow resets to true (0a41da8)<\/li>\n<li>Major refactoring of SJOC codebase<\/li>\n<li>igbinary support (bbf61ad)<\/li>\n<li>Compatibility with WP 3.6<\/li>\n<li>Added guards to fix path disclosure vulnerability (d595b19)<\/li>\n<\/ul>\n\n<h4>WPFC 1.2.9.1 (Dec 16, 2010)<\/h4>\n\n<ul>\n<li>Fixed stupid bug<\/li>\n<\/ul>\n\n<h4>WPFC 1.2.9 (Dec 15, 2010)<\/h4>\n\n<ul>\n<li>Ability to disable caching when memory is low<\/li>\n<\/ul>\n\n<h4>SJOC 1.3 (Oct 31, 2010)<\/h4>\n\n<ul>\n<li>Bug fix with Memcached engine registration<\/li>\n<li>Removed FileGroupCache<\/li>\n<li>Get rid of <code>maybe_serialize()<\/code><\/li>\n<li>Optimizations<\/li>\n<\/ul>\n\n<h4>SJOC 1.2 (Oct 14, 2010)<\/h4>\n\n<ul>\n<li>Added Memcache\/Memcached support<\/li>\n<\/ul>\n\n<h4>WPFC 1.2.8.2 (Apr 8, 2010)<\/h4>\n\n<ul>\n<li>Suppress 'stat failed' warning for <code>filemtime<\/code><\/li>\n<\/ul>\n\n<h4>WPFC 1.2.8.1 (Apr 7, 2010)<\/h4>\n\n<ul>\n<li>Save options bug fix<\/li>\n<\/ul>\n\n<h4>WPFC 1.2.8 (Mar 27, 2010)<\/h4>\n\n<ul>\n<li>Added Ukrainian translation (props <a href=\"http:\/\/andrey.eto-ya.com\/\">Andrey K.<\/a>)<\/li>\n<li>Fixed typos in readme.txt<\/li>\n<\/ul>\n\n<h4>WPFC 1.2.7 (Mar 12, 2010)<\/h4>\n\n<ul>\n<li>Option to always use fresh data in the Admin Panel<\/li>\n<li>Added Belarussian translation (props <a href=\"http:\/\/antsar.info\/\">Antsar<\/a>)<\/li>\n<\/ul>\n\n<h4>SJOC 1.1 (Mar 25, 2010)<\/h4>\n\n<ul>\n<li>Experimental WPMU support<\/li>\n<\/ul>\n\n<h4>SJOC 1.0 (Mar 8, 2010)<\/h4>\n\n<ul>\n<li>Declared RC3 stable<\/li>\n<\/ul>\n\n<h4>WPFC 1.2.6 (Mar 6, 2010)<\/h4>\n\n<ul>\n<li>Updated FAQ<\/li>\n<li>Added an experimental option to partially disable the cache in the Admin panel<\/li>\n<\/ul>\n\n<h4>WPFC 1.2.5 (Feb 15, 2010)<\/h4>\n\n<ul>\n<li>Data to be cached are not passed by reference anymore to ensure there are no side effects<\/li>\n<li>Objects are cloned before caching to avoid any side effects<\/li>\n<\/ul>\n\n<h4>WPFC 1.2.4 (Feb 14, 2010)<\/h4>\n\n<ul>\n<li>Fixed wrong directory name<\/li>\n<\/ul>\n\n<h4>WPFC 1.2.3 (Feb 12, 2010)<\/h4>\n\n<ul>\n<li>readme.txt bug fix<\/li>\n<\/ul>\n\n<h4>WPFC 1.2.2 (Feb 12, 2010)<\/h4>\n\n<ul>\n<li>Compatibility with WP 3.0<\/li>\n<\/ul>\n\n<h4>WPFC 1.2.1 (Jan 14, 2010)<\/h4>\n\n<ul>\n<li>optimized the code, speeded up <code>FileCache<\/code> class methods by moving all sanity checks to <code>wp_cache_xxx()<\/code> functions<\/li>\n<li>file lock on write<\/li>\n<li>less system calls are used<\/li>\n<li>compatibility with WordPress 2.6<\/li>\n<li>plugin won't cause WSoD if the plugin is deleted but wp-content\/object-cache.php file is not<\/li>\n<\/ul>\n\n<h4>SJOC 1.0rc3 (Jan 4, 2010)<\/h4>\n\n<ul>\n<li><code>$__sjfc_options<\/code> is forcefully global variable<\/li>\n<li>admin_menu and admin_init hooks are set up only when is_admin() is true<\/li>\n<li>unset all internally used variables in object-cache.php<\/li>\n<li>added wp_cache_reset() support<\/li>\n<li>cache is not persistent when <code>$_SERVER['HTTP_HOST']<\/code> is not set (CLI mode)<\/li>\n<li>moved sanity checks from BaseCache to wp_cache_add_global_groups() and wp_cache_add_non_persistent_groups()<\/li>\n<li>removed eAcceleratorGroupCache and xGroupCache<\/li>\n<li>FileCache: use <code>LOCK_EX<\/code> with <code>file_get_contents()<\/code><\/li>\n<li>Minor PHP code optimizations<\/li>\n<li><code>&amp;$this<\/code> =&gt; <code>$this<\/code><\/li>\n<\/ul>\n\n<h4>SJOC 1.0rc2 (Jan 3, 2010)<\/h4>\n\n<ul>\n<li>Renamed SjObjectCache to SJ Object Cache<\/li>\n<li>load_plugin_textdomain() is called only if is_admin() is true (translations are not used in user mode)<\/li>\n<\/ul>\n\n<h4>SJOC 1.0rc1 (Dec 20, 2009)<\/h4>\n\n<ul>\n<li>Added eAcceleratorGroupCache<\/li>\n<li>Moved several checks from BaseCache to wp_cache_XXX() functions to speed up internally used functions<\/li>\n<li>Minor PHP code optimizations<\/li>\n<li>Better wp_cache_flush() implementation for APC, eAccelerator and XCache<\/li>\n<\/ul>\n\n<h4>WPFC 1.1 (Dec 19, 2009)<\/h4>\n\n<ul>\n<li>Fixed serious floating bug in <code>FileCache::get()<\/code><\/li>\n<\/ul>\n\n<h4>SJOC 0.01 (Sep 22, 2009)<\/h4>\n\n<ul>\n<li>The first version of SJ Object Cache (proof of concept). Supported engines: APC, XCache, eAccelerator, FileCache, FileGroupCache, Zend Disk Cache, Zend Shared Memory Cache, XGroupCache<\/li>\n<\/ul>\n\n<h4>WPFC 1.0 (Dec 2, 2008)<\/h4>\n\n<ul>\n<li>Really do not remember<\/li>\n<\/ul>\n\n<h4>WPFC 0.2.1 (Jun 12, 2008)<\/h4>\n\n<ul>\n<li>First public release<\/li>\n<\/ul>","raw_excerpt":"Persistent caching using APC, xCache, eAccelerator, Zend Disk Cache, Zend Shared Memory Cache or files.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/23607","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=23607"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/extrememember"}],"wp:attachment":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=23607"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=23607"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=23607"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=23607"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=23607"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=23607"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}