{"id":211546,"date":"2014-02-05T20:47:03","date_gmt":"2014-02-05T16:47:03","guid":{"rendered":"http:\/\/savepearlharbor.com\/?p=211546"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-29T21:00:00","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=211546","title":{"rendered":"<span class=\"post_title\">\u041f\u0440\u043e\u0441\u0442\u043e\u0439 \u0441\u043f\u043e\u0441\u043e\u0431 \u043a\u044d\u0448\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0448\u0430\u0431\u043b\u043e\u043d\u043e\u0432 \u043d\u0430 PHP<\/span>"},"content":{"rendered":"<div class=\"content html_format\">   \t\u0427\u0430\u0441\u0442\u043e \u043f\u0440\u0438 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0435 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439 \u043d\u0430 PHP \u0432\u0441\u0442\u0430\u0451\u0442 \u0432\u043e\u043f\u0440\u043e\u0441 \u043a\u044d\u0448\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0432\u0441\u0435\u0433\u043e \u0432\u044b\u0432\u043e\u0434\u0438\u043c\u043e\u0433\u043e \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435\u043c \u0448\u0430\u0431\u043b\u043e\u043d\u0430, \u043b\u0438\u0431\u043e \u043a\u0430\u043a\u043e\u0439-\u0442\u043e \u0435\u0433\u043e \u0447\u0430\u0441\u0442\u0438, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0434\u043e\u0432\u043e\u043b\u044c\u043d\u043e \u0441\u0442\u0430\u0442\u0438\u0447\u043d\u0430\u044f \u0432\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u0438. \u0415\u0441\u043b\u0438 \u043f\u0440\u0438 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b\u0441\u044f \u043a\u0430\u043a\u043e\u0439-\u043b\u0438\u0431\u043e \u0448\u0430\u0431\u043b\u043e\u043d\u0438\u0437\u0430\u0442\u043e\u0440, \u0442\u043e \u0434\u0430\u043d\u043d\u044b\u0439 \u0432\u043e\u043f\u0440\u043e\u0441 \u0440\u0435\u0448\u0430\u0435\u0442\u0441\u044f \u00ab\u0438\u0437 \u043a\u043e\u0440\u043e\u0431\u043a\u0438\u00bb. \u041d\u043e \u043d\u0435 \u0432\u043e \u0432\u0441\u0435\u0445 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f\u0445 \u043d\u0430 PHP \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442\u0441\u044f \u0448\u0430\u0431\u043b\u043e\u043d\u0438\u0437\u0430\u0442\u043e\u0440\u044b, \u0430 \u0432\u043e\u043f\u0440\u043e\u0441 \u043e \u043a\u0435\u0448\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0438 \u0448\u0430\u0431\u043b\u043e\u043d\u0430 \u0438\u043b\u0438 \u0435\u0433\u043e \u0447\u0430\u0441\u0442\u0438 \u043e\u0441\u0442\u0430\u0451\u0442\u0441\u044f \u043e\u0442\u043a\u0440\u044b\u0442\u044b\u043c. \u041d\u0438\u0436\u0435 \u043e\u043f\u0438\u0441\u0430\u043d \u043e\u0434\u0438\u043d \u0438\u0437 \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u043e\u0432 \u0440\u0435\u0448\u0435\u043d\u0438\u044f \u0434\u0430\u043d\u043d\u043e\u0439 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u044b.<\/p>\n<p>  <img decoding=\"async\" src=\"http:\/\/habr.habrastorage.org\/post_images\/3c4\/2f2\/628\/3c42f2628eb61c852bbc9c8add6638f0.jpg\" alt=\"image\"\/><\/p>\n<p>  <a name=\"habracut\"><\/a><\/p>\n<p>  \u041d\u0438\u0436\u0435 \u043f\u0440\u0438\u0432\u0435\u0434\u0451\u043d \u043a\u043e\u0434 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u043a\u043b\u0430\u0441\u0441\u0430 \u0434\u043b\u044f \u043a\u044d\u0448\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0448\u0430\u0431\u043b\u043e\u043d\u0430 (\u0434\u0430\u043b\u0435\u0435 \u043e\u043d \u0431\u0443\u0434\u0435\u0442 \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0435\u043d \u0447\u0443\u0442\u044c \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u043e)<\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u041a\u043b\u0430\u0441\u0441 TemplateCache<\/b><\/p>\n<div class=\"spoiler_text\">\n<pre><code class=\"php\">class TemplateCache {     \/**      * @var ICacheDriver      *\/     private $cacheDriver;      public function __construct($cacheDriver = false, $options=array())     {         if(!$cacheDriver){             $cacheDriver = new ArrayCacheDriver($options);         }         $this-&gt;cacheDriver = $cacheDriver;     }      public function setCacheDriver($cacheDriver)     {         $this-&gt;cacheDriver = $cacheDriver;     }       public function start($id, $group='template')     {         $content = $this-&gt;cacheDriver-&gt;get($id, $group);         if($content){             echo $content;             return true;         }         ob_start();         return false;     }      public function end($id, $group='template')     {         $content = ob_get_contents();         $this-&gt;cacheDriver-&gt;store($id, $group, $content);         ob_end_clean();         echo $headerContent;     }      public function clean($group=false, $id=false)     {         this-&gt;cacheDriver-&gt;clean($group, $id);     }  } <\/code><\/pre>\n<p>  <\/div>\n<\/div>\n<p>  \u0414\u0430\u043d\u043d\u044b\u0439 \u043a\u043b\u0430\u0441\u0441 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439 \u043e\u0431\u0440\u0430\u0437\u043e\u043c \u2014 \u043a\u044d\u0448\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u0442\u0441\u044f \u043c\u0435\u0442\u043e\u0434\u043e\u043c <code>start<\/code>. \u0415\u0441\u043b\u0438 \u043a\u044d\u0448\u0438\u0440\u0443\u0435\u043c\u044b\u0439 \u0431\u043b\u043e\u043a \u043f\u0440\u0438\u0441\u0443\u0442\u0441\u0442\u0432\u0443\u0435\u0442 \u0432 \u043a\u044d\u0448\u0435 \u2014 \u0442\u043e \u0432\u044b\u0432\u043e\u0434\u0438\u043c \u0435\u0433\u043e, \u043f\u043e\u043b\u0443\u0447\u0438\u0432 \u0438\u0437 \u043a\u044d\u0448\u0430, \u0435\u0441\u043b\u0438 \u043d\u0435\u0442 \u2014 \u043a\u0435\u0448\u0438\u0440\u0443\u0435\u043c \u0431\u043b\u043e\u043a (\u0438\u043b\u0438 \u0446\u0435\u043b\u0443\u044e \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0443) \u0448\u0430\u0431\u043b\u043e\u043d\u0430. \u041a\u0435\u0448\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0437\u0430\u043a\u0430\u043d\u0447\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u043f\u043e \u0432\u044b\u0437\u043e\u0432\u0443 \u043c\u0435\u0442\u043e\u0434\u0430 <code>end<\/code>.<br \/>  \u0420\u0430\u0431\u043e\u0442\u0430 \u043a\u043b\u0430\u0441\u0441\u0430 \u043e\u0441\u043d\u043e\u0432\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u043d\u0430 \u0431\u0443\u0444\u0435\u0440\u0438\u0437\u0430\u0446\u0438\u0438 \u0432\u044b\u0432\u043e\u0434\u0430, \u0440\u0430\u0441\u043f\u043e\u043b\u043e\u0436\u0435\u043d\u043d\u043e\u0433\u043e \u043c\u0435\u0436\u0434\u0443 \u0432\u044b\u0437\u043e\u0432\u0430\u043c\u0438 \u0434\u0430\u043d\u043d\u044b\u0445 2 \u043c\u0435\u0442\u043e\u0434\u043e\u0432 \u0438 \u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u0438\u0438 \u0434\u0430\u043d\u043d\u043e\u0433\u043e \u0431\u0443\u0444\u0435\u0440\u0430 \u0432 \u043a\u044d\u0448.<br \/>  \u0420\u0430\u0431\u043e\u0442\u0430 \u0441 \u0445\u0440\u0430\u043d\u0438\u043b\u0438\u0449\u0435\u043c \u043a\u044d\u0448\u0430 \u0438\u043d\u043a\u0430\u043f\u0441\u0443\u043b\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u0432 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u043e\u043c \u043a\u043b\u0430\u0441\u0441\u0435, \u043e\u0431\u044a\u0435\u043a\u0442 \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u0441\u043e\u0437\u0434\u0430\u0451\u0442\u0441\u044f \u0438 \u043f\u0435\u0440\u0435\u0434\u0430\u0451\u0442\u0441\u044f \u0432 \u043a\u043b\u0430\u0441\u0441 TemplateCache.<br \/>  \u0414\u0430\u043d\u043d\u044b\u0439 \u043a\u043b\u0430\u0441\u0441 \u0434\u043e\u043b\u0436\u0435\u043d \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u044b\u0432\u0430\u0442\u044c \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441 ICacheDriver, \u043f\u0440\u0438\u0432\u0435\u0434\u0451\u043d\u043d\u044b\u0439 \u043d\u0438\u0436\u0435.<\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u0418\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441 ICacheDriver<\/b><\/p>\n<div class=\"spoiler_text\">\n<pre><code class=\"php\">interface ICacheDriver {     public function store($id, $group, $data);     public function get($id, $group);     public function clean($group, $id); } <\/code><\/pre>\n<p>  <\/div>\n<\/div>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u0420\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f ICacheDriver \u043a\u043b\u0430\u0441\u0441\u043e\u043c MemcachedCacheDriver<\/b><\/p>\n<div class=\"spoiler_text\">\n<pre><code class=\"php\">class MemcachedCacheDriver implements ICacheDriver {     private $memcache;     private $server = &quot;localhost&quot;;     private $port = 11211;     private $expires = 600;      public function __construct($options=array())     {         $this-&gt;server = isset($options['server']) ? $options['server'] : $this-&gt;server;         $this-&gt;port = isset($options['port']) ? $options['port'] : $this-&gt;port;         $this-&gt;expires = isset($options['expires']) ? $options['expires'] : $this-&gt;expires;          $this-&gt;memcache = new Memcache();         $this-&gt;memcache-&gt;connect($this-&gt;server, $this-&gt;port);     }      public function store($id, $group, $data)     {         $this-&gt;memcache-&gt;set($this-&gt;prepareKey($id, $group), $data, MEMCACHE_COMPRESSED, $this-&gt;expires);     }      public function get($id, $group)     {         return $this-&gt;memcache-&gt;get($this-&gt;prepareKey($id, $group));     }      public function clean($group, $id)     {         if(!$group && !$id){             $this-&gt;memcache-&gt;flush();             return;         }          if(!$id){             \/\/TO DO: develop delete cache by group             return;         }          $this-&gt;memcache-&gt;delete($this-&gt;_getKey());     }      protected function prepareKey($id, $group)     {         return $group . ':' . $id;     }  } <\/code><\/pre>\n<p>  <\/div>\n<\/div>\n<p>  \u041d\u0438\u0436\u0435 \u043f\u0440\u0438\u0432\u0435\u0434\u0451\u043d \u043f\u0440\u0438\u043c\u0435\u0440 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u043a\u043b\u0430\u0441\u0441\u0430 \u0434\u043b\u044f \u043a\u0435\u0448\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0448\u0430\u0431\u043b\u043e\u043d\u0430.  <\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u041f\u0440\u0438\u043c\u0435\u0440 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f TemplateCache \u0432 \u0448\u0430\u0431\u043b\u043e\u043d\u0435<\/b><\/p>\n<div class=\"spoiler_text\">\n<pre><code class=\"php\">&lt;?php if(!$templateCache-&gt;start('links', 'startPage')): ?&gt;  &lt;dl&gt; &lt;dt&gt;&lt;a href='\/manual\/en\/getting-started.php'&gt;Getting Started&lt;\/a&gt;&lt;\/dt&gt; \t&lt;dd&gt;&lt;a href='\/manual\/en\/introduction.php'&gt;Introduction&lt;\/a&gt;&lt;\/dd&gt; \t&lt;dd&gt;&lt;a href='\/manual\/en\/tutorial.php'&gt;A simple tutorial&lt;\/a&gt;&lt;\/dd&gt; &lt;dt&gt;&lt;a href='\/manual\/en\/langref.php'&gt;Language Reference&lt;\/a&gt;&lt;\/dt&gt; \t&lt;dd&gt;&lt;a href='\/manual\/en\/language.basic-syntax.php'&gt;Basic syntax&lt;\/a&gt;&lt;\/dd&gt; \t&lt;dd&gt;&lt;a href='\/manual\/en\/language.types.php'&gt;Types&lt;\/a&gt;&lt;\/dd&gt; \t&lt;dd&gt;&lt;a href='\/manual\/en\/language.variables.php'&gt;Variables&lt;\/a&gt;&lt;\/dd&gt; \t&lt;dd&gt;&lt;a href='\/manual\/en\/language.constants.php'&gt;Constants&lt;\/a&gt;&lt;\/dd&gt; \t&lt;dd&gt;&lt;a href='\/manual\/en\/language.expressions.php'&gt;Expressions&lt;\/a&gt;&lt;\/dd&gt; \t&lt;dd&gt;&lt;a href='\/manual\/en\/language.operators.php'&gt;Operators&lt;\/a&gt;&lt;\/dd&gt; \t&lt;dd&gt;&lt;a href='\/manual\/en\/language.control-structures.php'&gt;Control Structures&lt;\/a&gt;&lt;\/dd&gt; \t&lt;dd&gt;&lt;a href='\/manual\/en\/language.functions.php'&gt;Functions&lt;\/a&gt;&lt;\/dd&gt; \t&lt;dd&gt;&lt;a href='\/manual\/en\/language.oop5.php'&gt;Classes and Objects&lt;\/a&gt;&lt;\/dd&gt; \t&lt;dd&gt;&lt;a href='\/manual\/en\/language.namespaces.php'&gt;Namespaces&lt;\/a&gt;&lt;\/dd&gt; \t&lt;dd&gt;&lt;a href='\/manual\/en\/language.exceptions.php'&gt;Exceptions&lt;\/a&gt;&lt;\/dd&gt; \t&lt;dd&gt;&lt;a href='\/manual\/en\/language.generators.php'&gt;Generators&lt;\/a&gt;&lt;\/dd&gt; \t&lt;dd&gt;&lt;a href='\/manual\/en\/language.references.php'&gt;References Explained&lt;\/a&gt;&lt;\/dd&gt; \t&lt;dd&gt;&lt;a href='\/manual\/en\/reserved.variables.php'&gt;Predefined Variables&lt;\/a&gt;&lt;\/dd&gt; \t&lt;dd&gt;&lt;a href='\/manual\/en\/reserved.exceptions.php'&gt;Predefined Exceptions&lt;\/a&gt;&lt;\/dd&gt; \t&lt;dd&gt;&lt;a href='\/manual\/en\/reserved.interfaces.php'&gt;Predefined Interfaces and Classes&lt;\/a&gt;&lt;\/dd&gt; \t&lt;dd&gt;&lt;a href='\/manual\/en\/context.php'&gt;Context options and parameters&lt;\/a&gt;&lt;\/dd&gt; \t&lt;dd&gt;&lt;a href='\/manual\/en\/wrappers.php'&gt;Supported Protocols and Wrappers&lt;\/a&gt;&lt;\/dd&gt; &lt;\/dl&gt; &lt;?php $templateCache-&gt;end('links', 'startPage'); endif; ?&gt; <\/code><\/pre>\n<p>  <\/div>\n<\/div>\n<p>  \u0412 \u0438\u0442\u043e\u0433\u0435, \u043f\u043e\u043b\u0443\u0447\u0435\u043d \u0443\u0434\u043e\u0431\u043d\u044b\u0439 \u043a\u043b\u0430\u0441\u0441 \u0434\u043b\u044f \u043f\u0440\u043e\u0437\u0440\u0430\u0447\u043d\u043e\u0433\u043e \u0438 \u043d\u0435\u0437\u0430\u0433\u0440\u043e\u043c\u043e\u0436\u0434\u0430\u044e\u0449\u0435\u0433\u043e \u0448\u0430\u0431\u043b\u043e\u043d\u044b \u043a\u044d\u0448\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0431\u043b\u043e\u043a\u043e\u0432 HTML-\u043a\u043e\u0434\u0430.<br \/>  \u0411\u0443\u0434\u0443 \u0440\u0430\u0434 \u0443\u0432\u0438\u0434\u0435\u0442\u044c \u0412\u0430\u0441 \u0432 \u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u044f\u0445 \u0441\u043e \u0441\u0432\u043e\u0438\u043c\u0438 \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0435\u043d\u0438\u044f\u043c\u0438 \u0438 \u0437\u0430\u043c\u0435\u0447\u0430\u043d\u0438\u044f\u043c\u0438.<br \/>  \u0421\u043f\u0430\u0441\u0438\u0431\u043e    \t<\/p>\n<div class=\"clear\"><\/div>\n<\/p><\/div>\n<p> \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b \u0441\u0442\u0430\u0442\u044c\u0438 <a href=\"http:\/\/habrahabr.ru\/post\/211546\/\"> http:\/\/habrahabr.ru\/post\/211546\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<div class=\"content html_format\">   \t\u0427\u0430\u0441\u0442\u043e \u043f\u0440\u0438 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0435 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439 \u043d\u0430 PHP \u0432\u0441\u0442\u0430\u0451\u0442 \u0432\u043e\u043f\u0440\u043e\u0441 \u043a\u044d\u0448\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0432\u0441\u0435\u0433\u043e \u0432\u044b\u0432\u043e\u0434\u0438\u043c\u043e\u0433\u043e \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435\u043c \u0448\u0430\u0431\u043b\u043e\u043d\u0430, \u043b\u0438\u0431\u043e \u043a\u0430\u043a\u043e\u0439-\u0442\u043e \u0435\u0433\u043e \u0447\u0430\u0441\u0442\u0438, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0434\u043e\u0432\u043e\u043b\u044c\u043d\u043e \u0441\u0442\u0430\u0442\u0438\u0447\u043d\u0430\u044f \u0432\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u0438. \u0415\u0441\u043b\u0438 \u043f\u0440\u0438 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b\u0441\u044f \u043a\u0430\u043a\u043e\u0439-\u043b\u0438\u0431\u043e \u0448\u0430\u0431\u043b\u043e\u043d\u0438\u0437\u0430\u0442\u043e\u0440, \u0442\u043e \u0434\u0430\u043d\u043d\u044b\u0439 \u0432\u043e\u043f\u0440\u043e\u0441 \u0440\u0435\u0448\u0430\u0435\u0442\u0441\u044f \u00ab\u0438\u0437 \u043a\u043e\u0440\u043e\u0431\u043a\u0438\u00bb. \u041d\u043e \u043d\u0435 \u0432\u043e \u0432\u0441\u0435\u0445 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f\u0445 \u043d\u0430 PHP \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442\u0441\u044f \u0448\u0430\u0431\u043b\u043e\u043d\u0438\u0437\u0430\u0442\u043e\u0440\u044b, \u0430 \u0432\u043e\u043f\u0440\u043e\u0441 \u043e \u043a\u0435\u0448\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0438 \u0448\u0430\u0431\u043b\u043e\u043d\u0430 \u0438\u043b\u0438 \u0435\u0433\u043e \u0447\u0430\u0441\u0442\u0438 \u043e\u0441\u0442\u0430\u0451\u0442\u0441\u044f \u043e\u0442\u043a\u0440\u044b\u0442\u044b\u043c. \u041d\u0438\u0436\u0435 \u043e\u043f\u0438\u0441\u0430\u043d \u043e\u0434\u0438\u043d \u0438\u0437 \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u043e\u0432 \u0440\u0435\u0448\u0435\u043d\u0438\u044f \u0434\u0430\u043d\u043d\u043e\u0439 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u044b.<\/p>\n<p>  <img decoding=\"async\" src=\"http:\/\/habr.habrastorage.org\/post_images\/3c4\/2f2\/628\/3c42f2628eb61c852bbc9c8add6638f0.jpg\" alt=\"image\"\/><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[],"tags":[],"class_list":["post-211546","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/211546","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=211546"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/211546\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=211546"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=211546"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=211546"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}