Skip to content
  • P
    Projects
  • G
    Groups
  • S
    Snippets
  • Help

朱继来 / 后台订单管理

  • This project
    • Loading...
  • Sign in
Go to a project
  • Project
  • Repository
  • Issues 0
  • Merge Requests 0
  • Pipelines
  • Wiki
  • Snippets
  • Settings
  • Activity
  • Graph
  • Charts
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
  • Files
  • Commits
  • Branches
  • Tags
  • Contributors
  • Graph
  • Compare
  • Charts
Find file
Normal viewHistoryPermalink
Switch branch/tag
  • Order
  • ..
  • CachedObjectStorage
  • MemoryGZip.php
MemoryGZip.php 4.23 KB
叶明星's avatar
账期管理
d99f4f05
 
叶明星 committed 6 years ago
1
<?php
朱继来's avatar
1. 调整明细编辑;
0b4e495b
 
朱继来 committed 5 years ago
2

叶明星's avatar
账期管理
d99f4f05
 
叶明星 committed 6 years ago
3
/**
朱继来's avatar
1. 调整明细编辑;
0b4e495b
 
朱继来 committed 5 years ago
4
 * PHPExcel_CachedObjectStorage_MemoryGZip
叶明星's avatar
账期管理
d99f4f05
 
叶明星 committed 6 years ago
5
 *
朱继来's avatar
1. 调整明细编辑;
0b4e495b
 
朱继来 committed 5 years ago
6
 * Copyright (c) 2006 - 2015 PHPExcel
叶明星's avatar
账期管理
d99f4f05
 
叶明星 committed 6 years ago
7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
 *
 * This library is free software; you can redistribute it and/or
 * modify it under the terms of the GNU Lesser General Public
 * License as published by the Free Software Foundation; either
 * version 2.1 of the License, or (at your option) any later version.
 *
 * This library is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 * Lesser General Public License for more details.
 *
 * You should have received a copy of the GNU Lesser General Public
 * License along with this library; if not, write to the Free Software
 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
 *
 * @category   PHPExcel
 * @package    PHPExcel_CachedObjectStorage
朱继来's avatar
1. 调整明细编辑;
0b4e495b
 
朱继来 committed 5 years ago
24 25
 * @copyright  Copyright (c) 2006 - 2015 PHPExcel (http://www.codeplex.com/PHPExcel)
 * @license    http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt    LGPL
叶明星's avatar
账期管理
d99f4f05
 
叶明星 committed 6 years ago
26 27
 * @version    ##VERSION##, ##DATE##
 */
朱继来's avatar
1. 调整明细编辑;
0b4e495b
 
朱继来 committed 5 years ago
28 29
class PHPExcel_CachedObjectStorage_MemoryGZip extends PHPExcel_CachedObjectStorage_CacheBase implements PHPExcel_CachedObjectStorage_ICache
{
叶明星's avatar
账期管理
d99f4f05
 
叶明星 committed 6 years ago
30 31 32 33
    /**
     * Store cell data in cache for the current cell object if it's "dirty",
     *     and the 'nullify' the current cell object
     *
朱继来's avatar
1. 调整明细编辑;
0b4e495b
 
朱继来 committed 5 years ago
34 35
     * @return    void
     * @throws    PHPExcel_Exception
叶明星's avatar
账期管理
d99f4f05
 
叶明星 committed 6 years ago
36
     */
朱继来's avatar
1. 调整明细编辑;
0b4e495b
 
朱继来 committed 5 years ago
37 38 39 40
    protected function storeData()
    {
        if ($this->currentCellIsDirty && !empty($this->currentObjectID)) {
            $this->currentObject->detach();
叶明星's avatar
账期管理
d99f4f05
 
叶明星 committed 6 years ago
41

朱继来's avatar
1. 调整明细编辑;
0b4e495b
 
朱继来 committed 5 years ago
42 43 44 45 46
            $this->cellCache[$this->currentObjectID] = gzdeflate(serialize($this->currentObject));
            $this->currentCellIsDirty = false;
        }
        $this->currentObjectID = $this->currentObject = null;
    }
叶明星's avatar
账期管理
d99f4f05
 
叶明星 committed 6 years ago
47 48 49 50 51


    /**
     * Add or Update a cell in cache identified by coordinate address
     *
朱继来's avatar
1. 调整明细编辑;
0b4e495b
 
朱继来 committed 5 years ago
52 53 54 55
     * @param    string            $pCoord        Coordinate address of the cell to update
     * @param    PHPExcel_Cell    $cell        Cell to update
     * @return    PHPExcel_Cell
     * @throws    PHPExcel_Exception
叶明星's avatar
账期管理
d99f4f05
 
叶明星 committed 6 years ago
56
     */
朱继来's avatar
1. 调整明细编辑;
0b4e495b
 
朱继来 committed 5 years ago
57 58 59 60 61
    public function addCacheData($pCoord, PHPExcel_Cell $cell)
    {
        if (($pCoord !== $this->currentObjectID) && ($this->currentObjectID !== null)) {
            $this->storeData();
        }
叶明星's avatar
账期管理
d99f4f05
 
叶明星 committed 6 years ago
62

朱继来's avatar
1. 调整明细编辑;
0b4e495b
 
朱继来 committed 5 years ago
63 64 65
        $this->currentObjectID = $pCoord;
        $this->currentObject = $cell;
        $this->currentCellIsDirty = true;
叶明星's avatar
账期管理
d99f4f05
 
叶明星 committed 6 years ago
66

朱继来's avatar
1. 调整明细编辑;
0b4e495b
 
朱继来 committed 5 years ago
67 68
        return $cell;
    }
叶明星's avatar
账期管理
d99f4f05
 
叶明星 committed 6 years ago
69 70 71 72 73


    /**
     * Get cell at a specific coordinate
     *
朱继来's avatar
1. 调整明细编辑;
0b4e495b
 
朱继来 committed 5 years ago
74 75 76
     * @param     string             $pCoord        Coordinate of the cell
     * @throws     PHPExcel_Exception
     * @return     PHPExcel_Cell     Cell that was found, or null if not found
叶明星's avatar
账期管理
d99f4f05
 
叶明星 committed 6 years ago
77
     */
朱继来's avatar
1. 调整明细编辑;
0b4e495b
 
朱继来 committed 5 years ago
78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93
    public function getCacheData($pCoord)
    {
        if ($pCoord === $this->currentObjectID) {
            return $this->currentObject;
        }
        $this->storeData();

        //    Check if the entry that has been requested actually exists
        if (!isset($this->cellCache[$pCoord])) {
            //    Return null if requested entry doesn't exist in cache
            return null;
        }

        //    Set current entry to the requested entry
        $this->currentObjectID = $pCoord;
        $this->currentObject = unserialize(gzinflate($this->cellCache[$pCoord]));
叶明星's avatar
账期管理
d99f4f05
 
叶明星 committed 6 years ago
94
        //    Re-attach this as the cell's parent
朱继来's avatar
1. 调整明细编辑;
0b4e495b
 
朱继来 committed 5 years ago
95
        $this->currentObject->attach($this);
叶明星's avatar
账期管理
d99f4f05
 
叶明星 committed 6 years ago
96

朱继来's avatar
1. 调整明细编辑;
0b4e495b
 
朱继来 committed 5 years ago
97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132
        //    Return requested entry
        return $this->currentObject;
    }


    /**
     * Get a list of all cell addresses currently held in cache
     *
     * @return  string[]
     */
    public function getCellList()
    {
        if ($this->currentObjectID !== null) {
            $this->storeData();
        }

        return parent::getCellList();
    }


    /**
     * Clear the cell collection and disconnect from our parent
     *
     * @return    void
     */
    public function unsetWorksheetCells()
    {
        if (!is_null($this->currentObject)) {
            $this->currentObject->detach();
            $this->currentObject = $this->currentObjectID = null;
        }
        $this->cellCache = array();

        //    detach ourself from the worksheet, so that it can then delete this object successfully
        $this->parent = null;
    }
叶明星's avatar
账期管理
d99f4f05
 
叶明星 committed 6 years ago
133
}