Introduce a tool to migrate from PHPExcel to PhpSpreadsheet

This commit is contained in:
Adrien Crivelli 2016-11-28 00:11:16 +09:00
parent 166f21c07a
commit 5ad6ced95c
No known key found for this signature in database
GPG Key ID: B182FD79DC6DE92E
9 changed files with 345 additions and 46 deletions

View File

@ -34,25 +34,7 @@ and this project adheres to [Semantic Versioning](http://semver.org/).
- Introduction of namespaces for all classes, eg: `PHPExcel_Calculation_Function` becomes `PhpOffice\PhpSpreadsheet\Calculation\Functions`
- Some classes were renamed for clarity and/or consistency:
| Before | After |
|---------------------------------|-------------------------------------------|
| `PHPExcel` | `PhpOffice\PhpSpreadsheet\Spreadsheet` |
| `PHPExcel_Reader_Excel2007` | `PhpOffice\PhpSpreadsheet\Reader\Xlsx` |
| `PHPExcel_Reader_Excel5` | `PhpOffice\PhpSpreadsheet\Reader\Xls` |
| `PHPExcel_Reader_OOcalc` | `PhpOffice\PhpSpreadsheet\Reader\Ods` |
| `PHPExcel_Writer_Excel2007` | `PhpOffice\PhpSpreadsheet\Writer\Xlsx` |
| `PHPExcel_Writer_Excel5` | `PhpOffice\PhpSpreadsheet\Writer\Xls` |
| `PHPExcel_Writer_OpenOffice` | `PhpOffice\PhpSpreadsheet\Writer\Ods` |
- Some methods were renamed for clarity and/or consistency:
| Before | After |
|--------------------------------------------------|------------------------------------------------------------|
| `PHPExcel_Calculation_DateTime::DAYOFWEEK()` | `PhpOffice\PhpSpreadsheet\Calculation\DateTime::WEEKDAY()` |
| `PHPExcel_Calculation_DateTime::WEEKOFYEAR()` | `PhpOffice\PhpSpreadsheet\Calculation\DateTime::WEEKNUM()` |
| `PHPExcel_Calculation_DateTime::MINUTEOFHOUR()` | `PhpOffice\PhpSpreadsheet\Calculation\DateTime::MINUTE()` |
| `PHPExcel_Calculation_DateTime::SECONDOFMINUTE()`| `PhpOffice\PhpSpreadsheet\Calculation\DateTime::SECOND()` |
For a comprehensive list of all class changes, and a semi-automated migration path, read the [migration guide](./docs/Migration-from-PHPExcel.md).
## [1.8.1] - 2015-04-30

View File

@ -0,0 +1,17 @@
# Migration from PHPExcel
PhpSpreadsheet introduced many breaking changes by introducing namespaces and
renaming some classes. To help you migrate existing project, a tool was written
to replace all references to PHPExcel classes to their new names.
The tool is included in PhpSpreadsheet. It scans recursively all files and
directories, starting from the current directory. Assuming it was installed with
composer, it can be run like so:
```sh
cd /project/to/migrate/src
/project/to/migrate/vendor/phpoffice/phpspreadsheet/bin/migrate-from-phpexcel
```
**Important** The tool will irreversibly modify your sources, be sure to backup
everything, and double check the result before committing.

View File

@ -2,8 +2,6 @@
namespace PhpOffice\PhpSpreadsheet\Chart\Renderer;
require_once \PhpOffice\PhpSpreadsheet\Settings::getChartRendererPath() . '/jpgraph.php';
/**
* Copyright (c) 2006 - 2016 PhpSpreadsheet
*
@ -854,5 +852,7 @@ class JpGraph
{
$this->graph = null;
$this->chart = $chart;
require_once \PhpOffice\PhpSpreadsheet\Settings::getChartRendererPath() . '/jpgraph.php';
}
}

View File

@ -0,0 +1,281 @@
<?php
namespace PhpOffice\PhpSpreadsheet\Helper;
class Migrator
{
/**
* Return the ordered mapping from old PHPExcel class names to new PhpSpreadsheet one
* @return string[]
*/
public function getMapping()
{
// Order matters here, we should have the deepest namespaces first (the most "unique" strings)
$mapping = [
'PHPExcel_Shared_Escher_DggContainer_BstoreContainer_BSE_Blip' => '\\PhpOffice\\PhpSpreadsheet\\Shared\\Escher\\DggContainer\\BstoreContainer\\BSE\\Blip',
'PHPExcel_Shared_Escher_DgContainer_SpgrContainer_SpContainer' => '\\PhpOffice\\PhpSpreadsheet\\Shared\\Escher\\DgContainer\\SpgrContainer\\SpContainer',
'PHPExcel_Shared_Escher_DggContainer_BstoreContainer_BSE' => '\\PhpOffice\\PhpSpreadsheet\\Shared\\Escher\\DggContainer\\BstoreContainer\\BSE',
'PHPExcel_Shared_Escher_DgContainer_SpgrContainer' => '\\PhpOffice\\PhpSpreadsheet\\Shared\\Escher\\DgContainer\\SpgrContainer',
'PHPExcel_Shared_Escher_DggContainer_BstoreContainer' => '\\PhpOffice\\PhpSpreadsheet\\Shared\\Escher\\DggContainer\\BstoreContainer',
'PHPExcel_Shared_OLE_PPS_File' => '\\PhpOffice\\PhpSpreadsheet\\Shared\\OLE\\PPS\\File',
'PHPExcel_Shared_OLE_PPS_Root' => '\\PhpOffice\\PhpSpreadsheet\\Shared\\OLE\\PPS\\Root',
'PHPExcel_Worksheet_AutoFilter_Column_Rule' => '\\PhpOffice\\PhpSpreadsheet\\Worksheet\\AutoFilter\\Column\\Rule',
'PHPExcel_Writer_OpenDocument_Cell_Comment' => '\\PhpOffice\\PhpSpreadsheet\\Writer\\Ods\\Cell\\Comment',
'PHPExcel_Calculation_Token_Stack' => '\\PhpOffice\\PhpSpreadsheet\\Calculation\\Token\\Stack',
'PHPExcel_Chart_Renderer_jpgraph' => '\\PhpOffice\\PhpSpreadsheet\\Chart\\Renderer\\JpGraph',
'PHPExcel_Reader_Excel5_Escher' => '\\PhpOffice\\PhpSpreadsheet\\Reader\\Xls\\Escher',
'PHPExcel_Reader_Excel5_MD5' => '\\PhpOffice\\PhpSpreadsheet\\Reader\\Xls\\MD5',
'PHPExcel_Reader_Excel5_RC4' => '\\PhpOffice\\PhpSpreadsheet\\Reader\\Xls\\RC4',
'PHPExcel_Reader_Excel2007_Chart' => '\\PhpOffice\\PhpSpreadsheet\\Reader\\Xlsx\\Chart',
'PHPExcel_Reader_Excel2007_Theme' => '\\PhpOffice\\PhpSpreadsheet\\Reader\\Xlsx\\Theme',
'PHPExcel_Shared_Escher_DgContainer' => '\\PhpOffice\\PhpSpreadsheet\\Shared\\Escher\\DgContainer',
'PHPExcel_Shared_Escher_DggContainer' => '\\PhpOffice\\PhpSpreadsheet\\Shared\\Escher\\DggContainer',
'CholeskyDecomposition' => '\\PhpOffice\\PhpSpreadsheet\\Shared\\JAMA\\CholeskyDecomposition',
'EigenvalueDecomposition' => '\\PhpOffice\\PhpSpreadsheet\\Shared\\JAMA\\EigenvalueDecomposition',
'PHPExcel_Shared_JAMA_LUDecomposition' => '\\PhpOffice\\PhpSpreadsheet\\Shared\\JAMA\\LUDecomposition',
'PHPExcel_Shared_JAMA_Matrix' => '\\PhpOffice\\PhpSpreadsheet\\Shared\\JAMA\\Matrix',
'QRDecomposition' => '\\PhpOffice\\PhpSpreadsheet\\Shared\\JAMA\\QRDecomposition',
'PHPExcel_Shared_JAMA_QRDecomposition' => '\\PhpOffice\\PhpSpreadsheet\\Shared\\JAMA\\QRDecomposition',
'SingularValueDecomposition' => '\\PhpOffice\\PhpSpreadsheet\\Shared\\JAMA\\SingularValueDecomposition',
'PHPExcel_Shared_OLE_ChainedBlockStream' => '\\PhpOffice\\PhpSpreadsheet\\Shared\\OLE\\ChainedBlockStream',
'PHPExcel_Shared_OLE_PPS' => '\\PhpOffice\\PhpSpreadsheet\\Shared\\OLE\\PPS',
'PclZip' => '\\PhpOffice\\PhpSpreadsheet\\Shared\\PCLZip\\PclZip',
'PHPExcel_Best_Fit' => '\\PhpOffice\\PhpSpreadsheet\\Shared\\Trend\\BestFit',
'PHPExcel_Exponential_Best_Fit' => '\\PhpOffice\\PhpSpreadsheet\\Shared\\Trend\\ExponentialBestFit',
'PHPExcel_Linear_Best_Fit' => '\\PhpOffice\\PhpSpreadsheet\\Shared\\Trend\\LinearBestFit',
'PHPExcel_Logarithmic_Best_Fit' => '\\PhpOffice\\PhpSpreadsheet\\Shared\\Trend\\LogarithmicBestFit',
'polynomialBestFit' => '\\PhpOffice\\PhpSpreadsheet\\Shared\\Trend\\PolynomialBestFit',
'PHPExcel_Polynomial_Best_Fit' => '\\PhpOffice\\PhpSpreadsheet\\Shared\\Trend\\PolynomialBestFit',
'powerBestFit' => '\\PhpOffice\\PhpSpreadsheet\\Shared\\Trend\\PowerBestFit',
'PHPExcel_Power_Best_Fit' => '\\PhpOffice\\PhpSpreadsheet\\Shared\\Trend\\PowerBestFit',
'trendClass' => '\\PhpOffice\\PhpSpreadsheet\\Shared\\Trend\\Trend',
'PHPExcel_Worksheet_AutoFilter_Column' => '\\PhpOffice\\PhpSpreadsheet\\Worksheet\\AutoFilter\\Column',
'PHPExcel_Worksheet_Drawing_Shadow' => '\\PhpOffice\\PhpSpreadsheet\\Worksheet\\Drawing\\Shadow',
'PHPExcel_Writer_OpenDocument_Content' => '\\PhpOffice\\PhpSpreadsheet\\Writer\\Ods\\Content',
'PHPExcel_Writer_OpenDocument_Meta' => '\\PhpOffice\\PhpSpreadsheet\\Writer\\Ods\\Meta',
'PHPExcel_Writer_OpenDocument_MetaInf' => '\\PhpOffice\\PhpSpreadsheet\\Writer\\Ods\\MetaInf',
'PHPExcel_Writer_OpenDocument_Mimetype' => '\\PhpOffice\\PhpSpreadsheet\\Writer\\Ods\\Mimetype',
'PHPExcel_Writer_OpenDocument_Settings' => '\\PhpOffice\\PhpSpreadsheet\\Writer\\Ods\\Settings',
'PHPExcel_Writer_OpenDocument_Styles' => '\\PhpOffice\\PhpSpreadsheet\\Writer\\Ods\\Styles',
'PHPExcel_Writer_OpenDocument_Thumbnails' => '\\PhpOffice\\PhpSpreadsheet\\Writer\\Ods\\Thumbnails',
'PHPExcel_Writer_OpenDocument_WriterPart' => '\\PhpOffice\\PhpSpreadsheet\\Writer\\Ods\\WriterPart',
'PHPExcel_Writer_PDF_Core' => '\\PhpOffice\\PhpSpreadsheet\\Writer\\PDF\\Core',
'PHPExcel_Writer_PDF_DomPDF' => '\\PhpOffice\\PhpSpreadsheet\\Writer\\PDF\\DomPDF',
'PHPExcel_Writer_PDF_mPDF' => '\\PhpOffice\\PhpSpreadsheet\\Writer\\PDF\\MPDF',
'PHPExcel_Writer_PDF_tcPDF' => '\\PhpOffice\\PhpSpreadsheet\\Writer\\PDF\\TcPDF',
'PHPExcel_Writer_Excel5_BIFFwriter' => '\\PhpOffice\\PhpSpreadsheet\\Writer\\Xls\\BIFFwriter',
'PHPExcel_Writer_Excel5_Escher' => '\\PhpOffice\\PhpSpreadsheet\\Writer\\Xls\\Escher',
'PHPExcel_Writer_Excel5_Font' => '\\PhpOffice\\PhpSpreadsheet\\Writer\\Xls\\Font',
'PHPExcel_Writer_Excel5_Parser' => '\\PhpOffice\\PhpSpreadsheet\\Writer\\Xls\\Parser',
'PHPExcel_Writer_Excel5_Workbook' => '\\PhpOffice\\PhpSpreadsheet\\Writer\\Xls\\Workbook',
'PHPExcel_Writer_Excel5_Worksheet' => '\\PhpOffice\\PhpSpreadsheet\\Writer\\Xls\\Worksheet',
'PHPExcel_Writer_Excel5_Xf' => '\\PhpOffice\\PhpSpreadsheet\\Writer\\Xls\\Xf',
'PHPExcel_Writer_Excel2007_Chart' => '\\PhpOffice\\PhpSpreadsheet\\Writer\\Xlsx\\Chart',
'PHPExcel_Writer_Excel2007_Comments' => '\\PhpOffice\\PhpSpreadsheet\\Writer\\Xlsx\\Comments',
'PHPExcel_Writer_Excel2007_ContentTypes' => '\\PhpOffice\\PhpSpreadsheet\\Writer\\Xlsx\\ContentTypes',
'PHPExcel_Writer_Excel2007_DocProps' => '\\PhpOffice\\PhpSpreadsheet\\Writer\\Xlsx\\DocProps',
'PHPExcel_Writer_Excel2007_Drawing' => '\\PhpOffice\\PhpSpreadsheet\\Writer\\Xlsx\\Drawing',
'PHPExcel_Writer_Excel2007_Rels' => '\\PhpOffice\\PhpSpreadsheet\\Writer\\Xlsx\\Rels',
'PHPExcel_Writer_Excel2007_RelsRibbon' => '\\PhpOffice\\PhpSpreadsheet\\Writer\\Xlsx\\RelsRibbon',
'PHPExcel_Writer_Excel2007_RelsVBA' => '\\PhpOffice\\PhpSpreadsheet\\Writer\\Xlsx\\RelsVBA',
'PHPExcel_Writer_Excel2007_StringTable' => '\\PhpOffice\\PhpSpreadsheet\\Writer\\Xlsx\\StringTable',
'PHPExcel_Writer_Excel2007_Style' => '\\PhpOffice\\PhpSpreadsheet\\Writer\\Xlsx\\Style',
'PHPExcel_Writer_Excel2007_Theme' => '\\PhpOffice\\PhpSpreadsheet\\Writer\\Xlsx\\Theme',
'PHPExcel_Writer_Excel2007_Workbook' => '\\PhpOffice\\PhpSpreadsheet\\Writer\\Xlsx\\Workbook',
'PHPExcel_Writer_Excel2007_Worksheet' => '\\PhpOffice\\PhpSpreadsheet\\Writer\\Xlsx\\Worksheet',
'PHPExcel_Writer_Excel2007_WriterPart' => '\\PhpOffice\\PhpSpreadsheet\\Writer\\Xlsx\\WriterPart',
'PHPExcel_CachedObjectStorage_APC' => '\\PhpOffice\\PhpSpreadsheet\\CachedObjectStorage\\APC',
'PHPExcel_CachedObjectStorage_CacheBase' => '\\PhpOffice\\PhpSpreadsheet\\CachedObjectStorage\\CacheBase',
'PHPExcel_CachedObjectStorage_DiscISAM' => '\\PhpOffice\\PhpSpreadsheet\\CachedObjectStorage\\DiscISAM',
'PHPExcel_CachedObjectStorage_ICache' => '\\PhpOffice\\PhpSpreadsheet\\CachedObjectStorage\\ICache',
'PHPExcel_CachedObjectStorage_Igbinary' => '\\PhpOffice\\PhpSpreadsheet\\CachedObjectStorage\\Igbinary',
'PHPExcel_CachedObjectStorage_Memcache' => '\\PhpOffice\\PhpSpreadsheet\\CachedObjectStorage\\Memcache',
'PHPExcel_CachedObjectStorage_Memory' => '\\PhpOffice\\PhpSpreadsheet\\CachedObjectStorage\\Memory',
'PHPExcel_CachedObjectStorage_MemoryGZip' => '\\PhpOffice\\PhpSpreadsheet\\CachedObjectStorage\\MemoryGZip',
'PHPExcel_CachedObjectStorage_MemorySerialized' => '\\PhpOffice\\PhpSpreadsheet\\CachedObjectStorage\\MemorySerialized',
'PHPExcel_CachedObjectStorage_PHPTemp' => '\\PhpOffice\\PhpSpreadsheet\\CachedObjectStorage\\PHPTemp',
'PHPExcel_CachedObjectStorage_SQLite' => '\\PhpOffice\\PhpSpreadsheet\\CachedObjectStorage\\SQLite',
'PHPExcel_CachedObjectStorage_SQLite3' => '\\PhpOffice\\PhpSpreadsheet\\CachedObjectStorage\\SQLite3',
'PHPExcel_CachedObjectStorage_Wincache' => '\\PhpOffice\\PhpSpreadsheet\\CachedObjectStorage\\Wincache',
'PHPExcel_CalcEngine_CyclicReferenceStack' => '\\PhpOffice\\PhpSpreadsheet\\CalcEngine\\CyclicReferenceStack',
'PHPExcel_CalcEngine_Logger' => '\\PhpOffice\\PhpSpreadsheet\\CalcEngine\\Logger',
'PHPExcel_Calculation_Functions' => '\\PhpOffice\\PhpSpreadsheet\\Calculation\\Functions',
'PHPExcel_Calculation_Function' => '\\PhpOffice\\PhpSpreadsheet\\Calculation\\Categories',
'PHPExcel_Calculation_Database' => '\\PhpOffice\\PhpSpreadsheet\\Calculation\\Database',
'PHPExcel_Calculation_DateTime' => '\\PhpOffice\\PhpSpreadsheet\\Calculation\\DateTime',
'PHPExcel_Calculation_Engineering' => '\\PhpOffice\\PhpSpreadsheet\\Calculation\\Engineering',
'PHPExcel_Calculation_Exception' => '\\PhpOffice\\PhpSpreadsheet\\Calculation\\Exception',
'PHPExcel_Calculation_ExceptionHandler' => '\\PhpOffice\\PhpSpreadsheet\\Calculation\\ExceptionHandler',
'PHPExcel_Calculation_Financial' => '\\PhpOffice\\PhpSpreadsheet\\Calculation\\Financial',
'PHPExcel_Calculation_FormulaParser' => '\\PhpOffice\\PhpSpreadsheet\\Calculation\\FormulaParser',
'PHPExcel_Calculation_FormulaToken' => '\\PhpOffice\\PhpSpreadsheet\\Calculation\\FormulaToken',
'PHPExcel_Calculation_Logical' => '\\PhpOffice\\PhpSpreadsheet\\Calculation\\Logical',
'PHPExcel_Calculation_LookupRef' => '\\PhpOffice\\PhpSpreadsheet\\Calculation\\LookupRef',
'PHPExcel_Calculation_MathTrig' => '\\PhpOffice\\PhpSpreadsheet\\Calculation\\MathTrig',
'PHPExcel_Calculation_Statistical' => '\\PhpOffice\\PhpSpreadsheet\\Calculation\\Statistical',
'PHPExcel_Calculation_TextData' => '\\PhpOffice\\PhpSpreadsheet\\Calculation\\TextData',
'PHPExcel_Cell_AdvancedValueBinder' => '\\PhpOffice\\PhpSpreadsheet\\Cell\\AdvancedValueBinder',
'PHPExcel_Cell_DataType' => '\\PhpOffice\\PhpSpreadsheet\\Cell\\DataType',
'PHPExcel_Cell_DataValidation' => '\\PhpOffice\\PhpSpreadsheet\\Cell\\DataValidation',
'PHPExcel_Cell_DefaultValueBinder' => '\\PhpOffice\\PhpSpreadsheet\\Cell\\DefaultValueBinder',
'PHPExcel_Cell_Hyperlink' => '\\PhpOffice\\PhpSpreadsheet\\Cell\\Hyperlink',
'PHPExcel_Cell_IValueBinder' => '\\PhpOffice\\PhpSpreadsheet\\Cell\\IValueBinder',
'PHPExcel_Chart_Axis' => '\\PhpOffice\\PhpSpreadsheet\\Chart\\Axis',
'PHPExcel_Chart_DataSeries' => '\\PhpOffice\\PhpSpreadsheet\\Chart\\DataSeries',
'PHPExcel_Chart_DataSeriesValues' => '\\PhpOffice\\PhpSpreadsheet\\Chart\\DataSeriesValues',
'PHPExcel_Chart_Exception' => '\\PhpOffice\\PhpSpreadsheet\\Chart\\Exception',
'PHPExcel_Chart_GridLines' => '\\PhpOffice\\PhpSpreadsheet\\Chart\\GridLines',
'PHPExcel_Chart_Layout' => '\\PhpOffice\\PhpSpreadsheet\\Chart\\Layout',
'PHPExcel_Chart_Legend' => '\\PhpOffice\\PhpSpreadsheet\\Chart\\Legend',
'PHPExcel_Chart_PlotArea' => '\\PhpOffice\\PhpSpreadsheet\\Chart\\PlotArea',
'PHPExcel_Properties' => '\\PhpOffice\\PhpSpreadsheet\\Chart\\Properties',
'PHPExcel_Chart_Title' => '\\PhpOffice\\PhpSpreadsheet\\Chart\\Title',
'PHPExcel_DocumentProperties' => '\\PhpOffice\\PhpSpreadsheet\\Document\\Properties',
'PHPExcel_DocumentSecurity' => '\\PhpOffice\\PhpSpreadsheet\\Document\\Security',
'PHPExcel_Helper_HTML' => '\\PhpOffice\\PhpSpreadsheet\\Helper\\HTML',
'PHPExcel_Reader_Abstract' => '\\PhpOffice\\PhpSpreadsheet\\Reader\\BaseReader',
'PHPExcel_Reader_CSV' => '\\PhpOffice\\PhpSpreadsheet\\Reader\\CSV',
'PHPExcel_Reader_DefaultReadFilter' => '\\PhpOffice\\PhpSpreadsheet\\Reader\\DefaultReadFilter',
'PHPExcel_Reader_Excel2003XML' => '\\PhpOffice\\PhpSpreadsheet\\Reader\\Excel2003XML',
'PHPExcel_Reader_Exception' => '\\PhpOffice\\PhpSpreadsheet\\Reader\\Exception',
'PHPExcel_Reader_Gnumeric' => '\\PhpOffice\\PhpSpreadsheet\\Reader\\Gnumeric',
'PHPExcel_Reader_HTML' => '\\PhpOffice\\PhpSpreadsheet\\Reader\\HTML',
'PHPExcel_Reader_IReadFilter' => '\\PhpOffice\\PhpSpreadsheet\\Reader\\IReadFilter',
'PHPExcel_Reader_IReader' => '\\PhpOffice\\PhpSpreadsheet\\Reader\\IReader',
'PHPExcel_Reader_OOCalc' => '\\PhpOffice\\PhpSpreadsheet\\Reader\\Ods',
'PHPExcel_Reader_SYLK' => '\\PhpOffice\\PhpSpreadsheet\\Reader\\SYLK',
'PHPExcel_Reader_Excel5' => '\\PhpOffice\\PhpSpreadsheet\\Reader\\Xls',
'PHPExcel_Reader_Excel2007' => '\\PhpOffice\\PhpSpreadsheet\\Reader\\Xlsx',
'PHPExcel_RichText_ITextElement' => '\\PhpOffice\\PhpSpreadsheet\\RichText\\ITextElement',
'PHPExcel_RichText_Run' => '\\PhpOffice\\PhpSpreadsheet\\RichText\\Run',
'PHPExcel_RichText_TextElement' => '\\PhpOffice\\PhpSpreadsheet\\RichText\\TextElement',
'PHPExcel_Shared_CodePage' => '\\PhpOffice\\PhpSpreadsheet\\Shared\\CodePage',
'PHPExcel_Shared_Date' => '\\PhpOffice\\PhpSpreadsheet\\Shared\\Date',
'PHPExcel_Shared_Drawing' => '\\PhpOffice\\PhpSpreadsheet\\Shared\\Drawing',
'PHPExcel_Shared_Escher' => '\\PhpOffice\\PhpSpreadsheet\\Shared\\Escher',
'PHPExcel_Shared_File' => '\\PhpOffice\\PhpSpreadsheet\\Shared\\File',
'PHPExcel_Shared_Font' => '\\PhpOffice\\PhpSpreadsheet\\Shared\\Font',
'PHPExcel_Shared_OLE' => '\\PhpOffice\\PhpSpreadsheet\\Shared\\OLE',
'PHPExcel_Shared_OLERead' => '\\PhpOffice\\PhpSpreadsheet\\Shared\\OLERead',
'PHPExcel_Shared_PasswordHasher' => '\\PhpOffice\\PhpSpreadsheet\\Shared\\PasswordHasher',
'PHPExcel_Shared_String' => '\\PhpOffice\\PhpSpreadsheet\\Shared\\StringHelper',
'PHPExcel_Shared_TimeZone' => '\\PhpOffice\\PhpSpreadsheet\\Shared\\TimeZone',
'PHPExcel_Shared_XMLWriter' => '\\PhpOffice\\PhpSpreadsheet\\Shared\\XMLWriter',
'PHPExcel_Shared_Excel5' => '\\PhpOffice\\PhpSpreadsheet\\Shared\\Xls',
'PHPExcel_Shared_ZipArchive' => '\\PhpOffice\\PhpSpreadsheet\\Shared\\ZipArchive',
'PHPExcel_Shared_ZipStreamWrapper' => '\\PhpOffice\\PhpSpreadsheet\\Shared\\ZipStreamWrapper',
'PHPExcel_Style_Alignment' => '\\PhpOffice\\PhpSpreadsheet\\Style\\Alignment',
'PHPExcel_Style_Border' => '\\PhpOffice\\PhpSpreadsheet\\Style\\Border',
'PHPExcel_Style_Borders' => '\\PhpOffice\\PhpSpreadsheet\\Style\\Borders',
'PHPExcel_Style_Color' => '\\PhpOffice\\PhpSpreadsheet\\Style\\Color',
'PHPExcel_Style_Conditional' => '\\PhpOffice\\PhpSpreadsheet\\Style\\Conditional',
'PHPExcel_Style_Fill' => '\\PhpOffice\\PhpSpreadsheet\\Style\\Fill',
'PHPExcel_Style_Font' => '\\PhpOffice\\PhpSpreadsheet\\Style\\Font',
'PHPExcel_Style_NumberFormat' => '\\PhpOffice\\PhpSpreadsheet\\Style\\NumberFormat',
'PHPExcel_Style_Protection' => '\\PhpOffice\\PhpSpreadsheet\\Style\\Protection',
'PHPExcel_Style_Supervisor' => '\\PhpOffice\\PhpSpreadsheet\\Style\\Supervisor',
'PHPExcel_Worksheet_AutoFilter' => '\\PhpOffice\\PhpSpreadsheet\\Worksheet\\AutoFilter',
'PHPExcel_Worksheet_BaseDrawing' => '\\PhpOffice\\PhpSpreadsheet\\Worksheet\\BaseDrawing',
'PHPExcel_Worksheet_CellIterator' => '\\PhpOffice\\PhpSpreadsheet\\Worksheet\\CellIterator',
'PHPExcel_Worksheet_Column' => '\\PhpOffice\\PhpSpreadsheet\\Worksheet\\Column',
'PHPExcel_Worksheet_ColumnCellIterator' => '\\PhpOffice\\PhpSpreadsheet\\Worksheet\\ColumnCellIterator',
'PHPExcel_Worksheet_ColumnDimension' => '\\PhpOffice\\PhpSpreadsheet\\Worksheet\\ColumnDimension',
'PHPExcel_Worksheet_ColumnIterator' => '\\PhpOffice\\PhpSpreadsheet\\Worksheet\\ColumnIterator',
'PHPExcel_Worksheet_Drawing' => '\\PhpOffice\\PhpSpreadsheet\\Worksheet\\Drawing',
'PHPExcel_Worksheet_HeaderFooter' => '\\PhpOffice\\PhpSpreadsheet\\Worksheet\\HeaderFooter',
'PHPExcel_Worksheet_HeaderFooterDrawing' => '\\PhpOffice\\PhpSpreadsheet\\Worksheet\\HeaderFooterDrawing',
'PHPExcel_WorksheetIterator' => '\\PhpOffice\\PhpSpreadsheet\\Worksheet\\Iterator',
'PHPExcel_Worksheet_MemoryDrawing' => '\\PhpOffice\\PhpSpreadsheet\\Worksheet\\MemoryDrawing',
'PHPExcel_Worksheet_PageMargins' => '\\PhpOffice\\PhpSpreadsheet\\Worksheet\\PageMargins',
'PHPExcel_Worksheet_PageSetup' => '\\PhpOffice\\PhpSpreadsheet\\Worksheet\\PageSetup',
'PHPExcel_Worksheet_Protection' => '\\PhpOffice\\PhpSpreadsheet\\Worksheet\\Protection',
'PHPExcel_Worksheet_Row' => '\\PhpOffice\\PhpSpreadsheet\\Worksheet\\Row',
'PHPExcel_Worksheet_RowCellIterator' => '\\PhpOffice\\PhpSpreadsheet\\Worksheet\\RowCellIterator',
'PHPExcel_Worksheet_RowDimension' => '\\PhpOffice\\PhpSpreadsheet\\Worksheet\\RowDimension',
'PHPExcel_Worksheet_RowIterator' => '\\PhpOffice\\PhpSpreadsheet\\Worksheet\\RowIterator',
'PHPExcel_Worksheet_SheetView' => '\\PhpOffice\\PhpSpreadsheet\\Worksheet\\SheetView',
'PHPExcel_Writer_Abstract' => '\\PhpOffice\\PhpSpreadsheet\\Writer\\BaseWriter',
'PHPExcel_Writer_CSV' => '\\PhpOffice\\PhpSpreadsheet\\Writer\\CSV',
'PHPExcel_Writer_Exception' => '\\PhpOffice\\PhpSpreadsheet\\Writer\\Exception',
'PHPExcel_Writer_HTML' => '\\PhpOffice\\PhpSpreadsheet\\Writer\\HTML',
'PHPExcel_Writer_IWriter' => '\\PhpOffice\\PhpSpreadsheet\\Writer\\IWriter',
'PHPExcel_Writer_OpenDocument' => '\\PhpOffice\\PhpSpreadsheet\\Writer\\Ods',
'PHPExcel_Writer_PDF' => '\\PhpOffice\\PhpSpreadsheet\\Writer\\PDF',
'PHPExcel_Writer_Excel5' => '\\PhpOffice\\PhpSpreadsheet\\Writer\\Xls',
'PHPExcel_Writer_Excel2007' => '\\PhpOffice\\PhpSpreadsheet\\Writer\\Xlsx',
'PHPExcel_Autoloader' => '\\PhpOffice\\PhpSpreadsheet\\Autoloader',
'PHPExcel_CachedObjectStorageFactory' => '\\PhpOffice\\PhpSpreadsheet\\CachedObjectStorageFactory',
'PHPExcel_Calculation' => '\\PhpOffice\\PhpSpreadsheet\\Calculation',
'PHPExcel_Cell' => '\\PhpOffice\\PhpSpreadsheet\\Cell',
'PHPExcel_Chart' => '\\PhpOffice\\PhpSpreadsheet\\Chart',
'PHPExcel_Comment' => '\\PhpOffice\\PhpSpreadsheet\\Comment',
'PHPExcel_Exception' => '\\PhpOffice\\PhpSpreadsheet\\Exception',
'PHPExcel_HashTable' => '\\PhpOffice\\PhpSpreadsheet\\HashTable',
'PHPExcel_IComparable' => '\\PhpOffice\\PhpSpreadsheet\\IComparable',
'PHPExcel_IOFactory' => '\\PhpOffice\\PhpSpreadsheet\\IOFactory',
'PHPExcel_NamedRange' => '\\PhpOffice\\PhpSpreadsheet\\NamedRange',
'PHPExcel_ReferenceHelper' => '\\PhpOffice\\PhpSpreadsheet\\ReferenceHelper',
'PHPExcel_RichText' => '\\PhpOffice\\PhpSpreadsheet\\RichText',
'PHPExcel_Settings' => '\\PhpOffice\\PhpSpreadsheet\\Settings',
'PHPExcel_Style' => '\\PhpOffice\\PhpSpreadsheet\\Style',
'PHPExcel_Worksheet' => '\\PhpOffice\\PhpSpreadsheet\\Worksheet',
'PHPExcel' => '\\PhpOffice\\PhpSpreadsheet\\Spreadsheet',
// methods
'MINUTEOFHOUR' => 'MINUTE',
'SECONDOFMINUTE' => 'SECOND',
'DAYOFWEEK' => 'WEEKDAY',
'WEEKOFYEAR' => 'WEEKNUM',
];
return $mapping;
}
/**
* Search in all files in given directory
* @param string $path
*/
private function recursiveReplace($path)
{
$patterns = [
'/*.md',
'/*.php',
'/*.txt',
'/*.TXT',
];
$from = array_keys($this->getMapping());
$to = array_values($this->getMapping());
foreach ($patterns as $pattern) {
foreach (glob($path . $pattern) as $file) {
$original = file_get_contents($file);
$converted = str_replace($from, $to, $original);
if ($original !== $converted) {
echo $file . " converted\n";
file_put_contents($file, $converted);
}
}
}
// Do the recursion in subdirectory
foreach (glob($path . '/*', GLOB_ONLYDIR) as $subpath) {
if (strpos($subpath, $path . '/') === 0) {
$this->recursiveReplace($subpath);
}
}
}
public function migrate()
{
$path = realpath(getcwd());
echo 'This will search and replace recursively in ' . $path . PHP_EOL;
echo 'You MUST backup your files first, or you risk losing data.' . PHP_EOL;
echo 'Are you sure ? (y/n)';
$confirm = fread(STDIN, 1);
if ($confirm === 'y') {
$this->recursiveReplace($path);
}
}
}

View File

@ -2,14 +2,6 @@
namespace PhpOffice\PhpSpreadsheet\Writer\PDF;
/* Require DomPDF library */
$pdfRendererClassFile = \PhpOffice\PhpSpreadsheet\Settings::getPdfRendererPath() . '/dompdf_config.inc.php';
if (file_exists($pdfRendererClassFile)) {
require_once $pdfRendererClassFile;
} else {
throw new \PhpOffice\PhpSpreadsheet\Writer\Exception('Unable to load PDF Rendering library');
}
/**
* Copyright (c) 2006 - 2015 PhpSpreadsheet
*
@ -42,6 +34,14 @@ class DomPDF extends Core implements \PhpOffice\PhpSpreadsheet\Writer\IWriter
public function __construct(\PhpOffice\PhpSpreadsheet\Spreadsheet $spreadsheet)
{
parent::__construct($spreadsheet);
/* Require DomPDF library */
$pdfRendererClassFile = \PhpOffice\PhpSpreadsheet\Settings::getPdfRendererPath() . '/dompdf_config.inc.php';
if (file_exists($pdfRendererClassFile)) {
require_once $pdfRendererClassFile;
} else {
throw new \PhpOffice\PhpSpreadsheet\Writer\Exception('Unable to load PDF Rendering library');
}
}
/**

View File

@ -2,14 +2,6 @@
namespace PhpOffice\PhpSpreadsheet\Writer\PDF;
/* Require mPDF library */
$pdfRendererClassFile = \PhpOffice\PhpSpreadsheet\Settings::getPdfRendererPath() . '/mpdf.php';
if (file_exists($pdfRendererClassFile)) {
require_once $pdfRendererClassFile;
} else {
throw new \PhpOffice\PhpSpreadsheet\Writer\Exception('Unable to load PDF Rendering library');
}
/**
* Copyright (c) 2006 - 2015 PhpSpreadsheet
*
@ -42,6 +34,14 @@ class MPDF extends Core implements \PhpOffice\PhpSpreadsheet\Writer\IWriter
public function __construct(\PhpOffice\PhpSpreadsheet\Spreadsheet $spreadsheet)
{
parent::__construct($spreadsheet);
/* Require mPDF library */
$pdfRendererClassFile = \PhpOffice\PhpSpreadsheet\Settings::getPdfRendererPath() . '/mpdf.php';
if (file_exists($pdfRendererClassFile)) {
require_once $pdfRendererClassFile;
} else {
throw new \PhpOffice\PhpSpreadsheet\Writer\Exception('Unable to load PDF Rendering library');
}
}
/**

View File

@ -2,15 +2,6 @@
namespace PhpOffice\PhpSpreadsheet\Writer\PDF;
/* Require tcPDF library */
$pdfRendererClassFile = \PhpOffice\PhpSpreadsheet\Settings::getPdfRendererPath() . '/tcpdf.php';
if (file_exists($pdfRendererClassFile)) {
$k_path_url = \PhpOffice\PhpSpreadsheet\Settings::getPdfRendererPath();
require_once $pdfRendererClassFile;
} else {
throw new \PhpOffice\PhpSpreadsheet\Writer\Exception('Unable to load PDF Rendering library');
}
/**
* Copyright (c) 2006 - 2015 PhpSpreadsheet
*
@ -43,6 +34,15 @@ class TcPDF extends Core implements \PhpOffice\PhpSpreadsheet\Writer\IWriter
public function __construct(\PhpOffice\PhpSpreadsheet\Spreadsheet $spreadsheet)
{
parent::__construct($spreadsheet);
/* Require tcPDF library */
$pdfRendererClassFile = \PhpOffice\PhpSpreadsheet\Settings::getPdfRendererPath() . '/tcpdf.php';
if (file_exists($pdfRendererClassFile)) {
$k_path_url = \PhpOffice\PhpSpreadsheet\Settings::getPdfRendererPath();
require_once $pdfRendererClassFile;
} else {
throw new \PhpOffice\PhpSpreadsheet\Writer\Exception('Unable to load PDF Rendering library');
}
}
/**

View File

@ -0,0 +1,19 @@
<?php
namespace PhpOffice\PhpSpreadsheetTests\Helper;
use PhpOffice\PhpSpreadsheet\Helper\Migrator;
class MigratorTest extends \PHPUnit_Framework_TestCase
{
public function testMappingOnlyContainExistingClasses()
{
$migrator = new Migrator();
foreach ($migrator->getMapping() as $classname) {
if (substr_count($classname, '\\')) {
$this->assertTrue(class_exists($classname) || interface_exists($classname), 'mapping is wrong, class does not exists in project: ' . $classname);
}
}
}
}