From 1257b461b60f26b8b7b98d7c8d38b657a850a5f9 Mon Sep 17 00:00:00 2001 From: Mark Baker Date: Tue, 2 Oct 2012 07:45:14 +0100 Subject: [PATCH 1/4] Add superscript/subscript styling in Excel2007 Writer --- src/PHPWord/Writer/Word2007/Base.php | 268 ++++++++++++++------------- 1 file changed, 142 insertions(+), 126 deletions(-) diff --git a/src/PHPWord/Writer/Word2007/Base.php b/src/PHPWord/Writer/Word2007/Base.php index 1ed5bdee..adb20094 100644 --- a/src/PHPWord/Writer/Word2007/Base.php +++ b/src/PHPWord/Writer/Word2007/Base.php @@ -27,18 +27,18 @@ class PHPWord_Writer_Word2007_Base extends PHPWord_Writer_Word2007_WriterPart { - + protected function _writeText(PHPWord_Shared_XMLWriter $objWriter = null, PHPWord_Section_Text $text, $withoutP = false) { $styleFont = $text->getFontStyle(); - + $SfIsObject = ($styleFont instanceof PHPWord_Style_Font) ? true : false; - + if(!$withoutP) { $objWriter->startElement('w:p'); - + $styleParagraph = $text->getParagraphStyle(); $SpIsObject = ($styleParagraph instanceof PHPWord_Style_Paragraph) ? true : false; - + if($SpIsObject) { $this->_writeParagraphStyle($objWriter, $styleParagraph); } elseif(!$SpIsObject && !is_null($styleParagraph)) { @@ -49,12 +49,12 @@ class PHPWord_Writer_Word2007_Base extends PHPWord_Writer_Word2007_WriterPart { $objWriter->endElement(); } } - + $strText = htmlspecialchars($text->getText()); $strText = PHPWord_Shared_String::ControlCharacterPHP2OOXML($strText); - + $objWriter->startElement('w:r'); - + if($SfIsObject) { $this->_writeTextStyle($objWriter, $styleFont); } elseif(!$SfIsObject && !is_null($styleFont)) { @@ -64,27 +64,27 @@ class PHPWord_Writer_Word2007_Base extends PHPWord_Writer_Word2007_WriterPart { $objWriter->endElement(); $objWriter->endElement(); } - + $objWriter->startElement('w:t'); $objWriter->writeAttribute('xml:space', 'preserve'); // needed because of drawing spaces before and after text $objWriter->writeRaw($strText); $objWriter->endElement(); - + $objWriter->endElement(); // w:r - + if(!$withoutP) { $objWriter->endElement(); // w:p } } - + protected function _writeTextRun(PHPWord_Shared_XMLWriter $objWriter = null, PHPWord_Section_TextRun $textrun) { $elements = $textrun->getElements(); $styleParagraph = $textrun->getParagraphStyle(); - + $SpIsObject = ($styleParagraph instanceof PHPWord_Style_Paragraph) ? true : false; - + $objWriter->startElement('w:p'); - + if($SpIsObject) { $this->_writeParagraphStyle($objWriter, $styleParagraph); } elseif(!$SpIsObject && !is_null($styleParagraph)) { @@ -94,7 +94,7 @@ class PHPWord_Writer_Word2007_Base extends PHPWord_Writer_Word2007_WriterPart { $objWriter->endElement(); $objWriter->endElement(); } - + if(count($elements) > 0) { foreach($elements as $element) { if($element instanceof PHPWord_Section_Text) { @@ -104,33 +104,33 @@ class PHPWord_Writer_Word2007_Base extends PHPWord_Writer_Word2007_WriterPart { } } } - + $objWriter->endElement(); } - + protected function _writeParagraphStyle(PHPWord_Shared_XMLWriter $objWriter = null, PHPWord_Style_Paragraph $style, $withoutPPR = false) { $align = $style->getAlign(); $spaceBefore = $style->getSpaceBefore(); $spaceAfter = $style->getSpaceAfter(); $spacing = $style->getSpacing(); - - + + if(!is_null($align) || !is_null($spacing) || !is_null($spaceBefore) || !is_null($spaceAfter)) { - + if(!$withoutPPR) { $objWriter->startElement('w:pPr'); } - + if(!is_null($align)) { $objWriter->startElement('w:jc'); $objWriter->writeAttribute('w:val', $align); $objWriter->endElement(); } - + if(!is_null($spaceBefore) || !is_null($spaceAfter) || !is_null($spacing)) { - + $objWriter->startElement('w:spacing'); - + if(!is_null($spaceBefore)) { $objWriter->writeAttribute('w:before', $spaceBefore); } @@ -144,29 +144,29 @@ class PHPWord_Writer_Word2007_Base extends PHPWord_Writer_Word2007_WriterPart { $objWriter->endElement(); } - + if(!$withoutPPR) { $objWriter->endElement(); // w:pPr } } } - + protected function _writeLink(PHPWord_Shared_XMLWriter $objWriter = null, PHPWord_Section_Link $link, $withoutP = false) { $rID = $link->getRelationId(); $linkName = $link->getLinkName(); if(is_null($linkName)) { $linkName = $link->getLinkSrc(); } - + $styleFont = $link->getFontStyle(); $SfIsObject = ($styleFont instanceof PHPWord_Style_Font) ? true : false; - + if(!$withoutP) { $objWriter->startElement('w:p'); - + $styleParagraph = $link->getParagraphStyle(); $SpIsObject = ($styleParagraph instanceof PHPWord_Style_Paragraph) ? true : false; - + if($SpIsObject) { $this->_writeParagraphStyle($objWriter, $styleParagraph); } elseif(!$SpIsObject && !is_null($styleParagraph)) { @@ -177,11 +177,11 @@ class PHPWord_Writer_Word2007_Base extends PHPWord_Writer_Word2007_WriterPart { $objWriter->endElement(); } } - + $objWriter->startElement('w:hyperlink'); $objWriter->writeAttribute('r:id', 'rId'.$rID); $objWriter->writeAttribute('w:history', '1'); - + $objWriter->startElement('w:r'); if($SfIsObject) { $this->_writeTextStyle($objWriter, $styleFont); @@ -192,31 +192,31 @@ class PHPWord_Writer_Word2007_Base extends PHPWord_Writer_Word2007_WriterPart { $objWriter->endElement(); $objWriter->endElement(); } - + $objWriter->startElement('w:t'); $objWriter->writeAttribute('xml:space', 'preserve'); // needed because of drawing spaces before and after text $objWriter->writeRaw($linkName); $objWriter->endElement(); $objWriter->endElement(); - + $objWriter->endElement(); - + if(!$withoutP) { $objWriter->endElement(); // w:p } } - + protected function _writePreserveText(PHPWord_Shared_XMLWriter $objWriter = null, PHPWord_Section_Footer_PreserveText $textrun) { $styleFont = $textrun->getFontStyle(); $styleParagraph = $textrun->getParagraphStyle(); - + $SfIsObject = ($styleFont instanceof PHPWord_Style_Font) ? true : false; $SpIsObject = ($styleParagraph instanceof PHPWord_Style_Paragraph) ? true : false; - + $arrText = $textrun->getText(); - + $objWriter->startElement('w:p'); - + if($SpIsObject) { $this->_writeParagraphStyle($objWriter, $styleParagraph); } elseif(!$SpIsObject && !is_null($styleParagraph)) { @@ -226,20 +226,20 @@ class PHPWord_Writer_Word2007_Base extends PHPWord_Writer_Word2007_WriterPart { $objWriter->endElement(); $objWriter->endElement(); } - + foreach($arrText as $text) { - + if(substr($text, 0, 1) == '{') { $text = substr($text, 1, -1); - + $objWriter->startElement('w:r'); $objWriter->startElement('w:fldChar'); $objWriter->writeAttribute('w:fldCharType', 'begin'); $objWriter->endElement(); $objWriter->endElement(); - + $objWriter->startElement('w:r'); - + if($SfIsObject) { $this->_writeTextStyle($objWriter, $styleFont); } elseif(!$SfIsObject && !is_null($styleFont)) { @@ -249,19 +249,19 @@ class PHPWord_Writer_Word2007_Base extends PHPWord_Writer_Word2007_WriterPart { $objWriter->endElement(); $objWriter->endElement(); } - + $objWriter->startElement('w:instrText'); $objWriter->writeAttribute('xml:space', 'preserve'); $objWriter->writeRaw($text); $objWriter->endElement(); $objWriter->endElement(); - + $objWriter->startElement('w:r'); $objWriter->startElement('w:fldChar'); $objWriter->writeAttribute('w:fldCharType', 'separate'); $objWriter->endElement(); $objWriter->endElement(); - + $objWriter->startElement('w:r'); $objWriter->startElement('w:fldChar'); $objWriter->writeAttribute('w:fldCharType', 'end'); @@ -270,9 +270,9 @@ class PHPWord_Writer_Word2007_Base extends PHPWord_Writer_Word2007_WriterPart { } else { $text = htmlspecialchars($text); $text = PHPWord_Shared_String::ControlCharacterPHP2OOXML($text); - + $objWriter->startElement('w:r'); - + if($SfIsObject) { $this->_writeTextStyle($objWriter, $styleFont); } elseif(!$SfIsObject && !is_null($styleFont)) { @@ -282,7 +282,7 @@ class PHPWord_Writer_Word2007_Base extends PHPWord_Writer_Word2007_WriterPart { $objWriter->endElement(); $objWriter->endElement(); } - + $objWriter->startElement('w:t'); $objWriter->writeAttribute('xml:space', 'preserve'); $objWriter->writeRaw($text); @@ -290,10 +290,10 @@ class PHPWord_Writer_Word2007_Base extends PHPWord_Writer_Word2007_WriterPart { $objWriter->endElement(); } } - + $objWriter->endElement(); // p } - + protected function _writeTextStyle(PHPWord_Shared_XMLWriter $objWriter = null, PHPWord_Style_Font $style) { $font = $style->getName(); $bold = $style->getBold(); @@ -303,9 +303,11 @@ class PHPWord_Writer_Word2007_Base extends PHPWord_Writer_Word2007_WriterPart { $fgColor = $style->getFgColor(); $striketrough = $style->getStrikethrough(); $underline = $style->getUnderline(); - + $superscript = $style->getSuperScript(); + $subscript = $style->getSubScript(); + $objWriter->startElement('w:rPr'); - + // Font if($font != 'Arial') { $objWriter->startElement('w:rFonts'); @@ -314,14 +316,14 @@ class PHPWord_Writer_Word2007_Base extends PHPWord_Writer_Word2007_WriterPart { $objWriter->writeAttribute('w:cs', $font); $objWriter->endElement(); } - + // Color if($color != '000000') { $objWriter->startElement('w:color'); $objWriter->writeAttribute('w:val', $color); $objWriter->endElement(); } - + // Size if($size != 20) { $objWriter->startElement('w:sz'); @@ -331,48 +333,62 @@ class PHPWord_Writer_Word2007_Base extends PHPWord_Writer_Word2007_WriterPart { $objWriter->writeAttribute('w:val', $size); $objWriter->endElement(); } - + // Bold if($bold) { $objWriter->writeElement('w:b', null); } - + + // Superscript + if($superscript) { + $objWriter->startElement('w:vertAlign'); + $objWriter->writeAttribute('w:val', 'superscript'); + $objWriter->endElement(); + } + + // Subscript + if($subscript) { + $objWriter->startElement('w:vertAlign'); + $objWriter->writeAttribute('w:val', 'subscript'); + $objWriter->endElement(); + } + // Italic if($italic) { $objWriter->writeElement('w:i', null); $objWriter->writeElement('w:iCs', null); } - + // Underline if(!is_null($underline) && $underline != 'none') { $objWriter->startElement('w:u'); $objWriter->writeAttribute('w:val', $underline); $objWriter->endElement(); } - + // Striketrough if($striketrough) { $objWriter->writeElement('w:strike', null); } - + // Foreground-Color if(!is_null($fgColor)) { $objWriter->startElement('w:highlight'); $objWriter->writeAttribute('w:val', $fgColor); $objWriter->endElement(); } - + $objWriter->endElement(); } - + protected function _writeTextBreak(PHPWord_Shared_XMLWriter $objWriter = null) { $objWriter->writeElement('w:p', null); } - + protected function _writeTable(PHPWord_Shared_XMLWriter $objWriter = null, PHPWord_Section_Table $table) { $_rows = $table->getRows(); $_cRows = count($_rows); - + if($_cRows > 0) { $objWriter->startElement('w:tbl'); $tblStyle = $table->getStyle(); @@ -392,9 +408,9 @@ class PHPWord_Writer_Word2007_Base extends PHPWord_Writer_Word2007_WriterPart { for($i=0; $i<$_cRows; $i++) { $row = $_rows[$i]; $height = $_heights[$i]; - + $objWriter->startElement('w:tr'); - + if(!is_null($height)) { $objWriter->startElement('w:trPr'); $objWriter->startElement('w:trHeight'); @@ -402,25 +418,25 @@ class PHPWord_Writer_Word2007_Base extends PHPWord_Writer_Word2007_WriterPart { $objWriter->endElement(); $objWriter->endElement(); } - + foreach($row as $cell) { $objWriter->startElement('w:tc'); - + $cellStyle = $cell->getStyle(); $width = $cell->getWidth(); - + $objWriter->startElement('w:tcPr'); $objWriter->startElement('w:tcW'); $objWriter->writeAttribute('w:w', $width); $objWriter->writeAttribute('w:type', 'dxa'); $objWriter->endElement(); - + if($cellStyle instanceof PHPWord_Style_Cell) { $this->_writeCellStyle($objWriter, $cellStyle); } - + $objWriter->endElement(); - + $_elements = $cell->getElements(); if(count($_elements) > 0) { foreach($_elements as $element) { @@ -446,7 +462,7 @@ class PHPWord_Writer_Word2007_Base extends PHPWord_Writer_Word2007_WriterPart { } else { $this->_writeTextBreak($objWriter); } - + $objWriter->endElement(); } $objWriter->endElement(); @@ -454,73 +470,73 @@ class PHPWord_Writer_Word2007_Base extends PHPWord_Writer_Word2007_WriterPart { $objWriter->endElement(); } } - + protected function _writeTableStyle(PHPWord_Shared_XMLWriter $objWriter = null, PHPWord_Style_Table $style = null) { $margins = $style->getCellMargin(); $mTop = (!is_null($margins[0])) ? true : false; $mLeft = (!is_null($margins[1])) ? true : false; $mRight = (!is_null($margins[2])) ? true : false; $mBottom = (!is_null($margins[3])) ? true : false; - + if($mTop || $mLeft || $mRight || $mBottom) { $objWriter->startElement('w:tblPr'); $objWriter->startElement('w:tblCellMar'); - + if($mTop) { $objWriter->startElement('w:top'); $objWriter->writeAttribute('w:w', $margins[0]); $objWriter->writeAttribute('w:type', 'dxa'); $objWriter->endElement(); } - + if($mLeft) { $objWriter->startElement('w:left'); $objWriter->writeAttribute('w:w', $margins[1]); $objWriter->writeAttribute('w:type', 'dxa'); $objWriter->endElement(); } - + if($mRight) { $objWriter->startElement('w:right'); $objWriter->writeAttribute('w:w', $margins[2]); $objWriter->writeAttribute('w:type', 'dxa'); $objWriter->endElement(); } - + if($mBottom) { $objWriter->startElement('w:bottom'); $objWriter->writeAttribute('w:w', $margins[3]); $objWriter->writeAttribute('w:type', 'dxa'); $objWriter->endElement(); } - + $objWriter->endElement(); $objWriter->endElement(); } } - + protected function _writeCellStyle(PHPWord_Shared_XMLWriter $objWriter = null, PHPWord_Style_Cell $style = null) { $bgColor = $style->getBgColor(); $valign = $style->getVAlign(); $textDir = $style->getTextDirection(); $brdSz = $style->getBorderSize(); $brdCol = $style->getBorderColor(); - + $bTop = (!is_null($brdSz[0])) ? true : false; $bLeft = (!is_null($brdSz[1])) ? true : false; $bRight = (!is_null($brdSz[2])) ? true : false; $bBottom = (!is_null($brdSz[3])) ? true : false; $borders = ($bTop || $bLeft || $bRight || $bBottom) ? true : false; - + $styles = (!is_null($bgColor) || !is_null($valign) || !is_null($textDir) || $borders) ? true : false; - + if($styles) { if(!is_null($textDir)) { $objWriter->startElement('w:textDirection'); $objWriter->writeAttribute('w:val', $textDir); $objWriter->endElement(); } - + if(!is_null($bgColor)) { $objWriter->startElement('w:shd'); $objWriter->writeAttribute('w:val', 'clear'); @@ -528,16 +544,16 @@ class PHPWord_Writer_Word2007_Base extends PHPWord_Writer_Word2007_WriterPart { $objWriter->writeAttribute('w:fill', $bgColor); $objWriter->endElement(); } - + if(!is_null($valign)) { $objWriter->startElement('w:vAlign'); $objWriter->writeAttribute('w:val', $valign); $objWriter->endElement(); } - + if($borders) { $_defaultColor = $style->getDefaultBorderColor(); - + $objWriter->startElement('w:tcBorders'); if($bTop) { if(is_null($brdCol[0])) { $brdCol[0] = $_defaultColor; } @@ -547,7 +563,7 @@ class PHPWord_Writer_Word2007_Base extends PHPWord_Writer_Word2007_WriterPart { $objWriter->writeAttribute('w:color', $brdCol[0]); $objWriter->endElement(); } - + if($bLeft) { if(is_null($brdCol[1])) { $brdCol[1] = $_defaultColor; } $objWriter->startElement('w:left'); @@ -556,7 +572,7 @@ class PHPWord_Writer_Word2007_Base extends PHPWord_Writer_Word2007_WriterPart { $objWriter->writeAttribute('w:color', $brdCol[1]); $objWriter->endElement(); } - + if($bRight) { if(is_null($brdCol[2])) { $brdCol[2] = $_defaultColor; } $objWriter->startElement('w:right'); @@ -565,7 +581,7 @@ class PHPWord_Writer_Word2007_Base extends PHPWord_Writer_Word2007_WriterPart { $objWriter->writeAttribute('w:color', $brdCol[2]); $objWriter->endElement(); } - + if($bBottom) { if(is_null($brdCol[3])) { $brdCol[3] = $_defaultColor; } $objWriter->startElement('w:bottom'); @@ -574,22 +590,22 @@ class PHPWord_Writer_Word2007_Base extends PHPWord_Writer_Word2007_WriterPart { $objWriter->writeAttribute('w:color', $brdCol[3]); $objWriter->endElement(); } - + $objWriter->endElement(); } } } - + protected function _writeImage(PHPWord_Shared_XMLWriter $objWriter = null, $image) { $rId = $image->getRelationId(); - + $style = $image->getStyle(); $width = $style->getWidth(); $height = $style->getHeight(); $align = $style->getAlign(); - + $objWriter->startElement('w:p'); - + if(!is_null($align)) { $objWriter->startElement('w:pPr'); $objWriter->startElement('w:jc'); @@ -597,46 +613,46 @@ class PHPWord_Writer_Word2007_Base extends PHPWord_Writer_Word2007_WriterPart { $objWriter->endElement(); $objWriter->endElement(); } - + $objWriter->startElement('w:r'); - + $objWriter->startElement('w:pict'); - + $objWriter->startElement('v:shape'); $objWriter->writeAttribute('type', '#_x0000_t75'); $objWriter->writeAttribute('style', 'width:'.$width.'px;height:'.$height.'px'); - + $objWriter->startElement('v:imagedata'); $objWriter->writeAttribute('r:id', 'rId'.$rId); $objWriter->writeAttribute('o:title', ''); $objWriter->endElement(); $objWriter->endElement(); - + $objWriter->endElement(); - + $objWriter->endElement(); - + $objWriter->endElement(); } - + protected function _writeWatermark(PHPWord_Shared_XMLWriter $objWriter = null, $image) { $rId = $image->getRelationId(); - + $style = $image->getStyle(); $width = $style->getWidth(); $height = $style->getHeight(); $marginLeft = $style->getMarginLeft(); $marginTop = $style->getMarginTop(); - + $objWriter->startElement('w:p'); - + $objWriter->startElement('w:r'); - + $objWriter->startElement('w:pict'); - + $objWriter->startElement('v:shape'); $objWriter->writeAttribute('type', '#_x0000_t75'); - + $strStyle = 'position:absolute;'; $strStyle .= ' width:'.$width.'px;'; $strStyle .= ' height:'.$height.'px;'; @@ -646,31 +662,31 @@ class PHPWord_Writer_Word2007_Base extends PHPWord_Writer_Word2007_WriterPart { if(!is_null($marginLeft)) { $strStyle .= ' margin-left:'.$marginLeft.'px;'; } - + $objWriter->writeAttribute('style', $strStyle); - + $objWriter->startElement('v:imagedata'); $objWriter->writeAttribute('r:id', 'rId'.$rId); $objWriter->writeAttribute('o:title', ''); $objWriter->endElement(); $objWriter->endElement(); - + $objWriter->endElement(); - + $objWriter->endElement(); - + $objWriter->endElement(); } - + protected function _writeTitle(PHPWord_Shared_XMLWriter $objWriter = null, PHPWord_Section_Title $title) { $text = htmlspecialchars($title->getText()); $text = PHPWord_Shared_String::ControlCharacterPHP2OOXML($text); $anchor = $title->getAnchor(); $bookmarkId = $title->getBookmarkId(); $style = $title->getStyle(); - + $objWriter->startElement('w:p'); - + if(!empty($style)) { $objWriter->startElement('w:pPr'); $objWriter->startElement('w:pStyle'); @@ -678,28 +694,28 @@ class PHPWord_Writer_Word2007_Base extends PHPWord_Writer_Word2007_WriterPart { $objWriter->endElement(); $objWriter->endElement(); } - + $objWriter->startElement('w:r'); $objWriter->startElement('w:fldChar'); $objWriter->writeAttribute('w:fldCharType', 'end'); $objWriter->endElement(); $objWriter->endElement(); - + $objWriter->startElement('w:bookmarkStart'); $objWriter->writeAttribute('w:id', $bookmarkId); $objWriter->writeAttribute('w:name', $anchor); $objWriter->endElement(); - + $objWriter->startElement('w:r'); $objWriter->startElement('w:t'); $objWriter->writeRaw($text); $objWriter->endElement(); $objWriter->endElement(); - + $objWriter->startElement('w:bookmarkEnd'); $objWriter->writeAttribute('w:id', $bookmarkId); $objWriter->endElement(); - + $objWriter->endElement(); } } From ea81f578b3aabf85fac9e8ee92336a0054ce3395 Mon Sep 17 00:00:00 2001 From: Progi1984 Date: Fri, 13 Dec 2013 11:36:36 +0100 Subject: [PATCH 2/4] Support de Composer --- composer.json | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 composer.json diff --git a/composer.json b/composer.json new file mode 100644 index 00000000..9eac10f4 --- /dev/null +++ b/composer.json @@ -0,0 +1,30 @@ +{ + "name": "phpoffice/phpword", + "description": "PHPWord - Read, Create and Write Word documents in PHP", + "keywords": ["PHP","Word", "Writer", "docx","doc","rtf"], + "homepage": "http://phpoffice.github.io", + "type": "library", + "license": "LGPL", + "authors": [ + { + "name": "Mark Baker" + }, + { + "name": "Franck Lefevre", + "homepage": "http://blog.rootslabs.net" + } + ], + "require": { + "php": ">=5.2.0", + "ext-xml": "*" + }, + "recommend": { + "ext-zip": "*", + "ext-gd2": "*" + }, + "autoload": { + "psr-0": { + "PHPWord": "src/" + } + } +} From 3f098ba90191cf86439a71212a9942c2d9a5e244 Mon Sep 17 00:00:00 2001 From: Progi1984 Date: Fri, 13 Dec 2013 11:38:22 +0100 Subject: [PATCH 3/4] Support de Composer --- composer.json | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/composer.json b/composer.json index 9eac10f4..75678888 100644 --- a/composer.json +++ b/composer.json @@ -9,10 +9,15 @@ { "name": "Mark Baker" }, + { + "name": "Gabriel Bull", + "email": "gavroche.bull@gmail.com" + }, { "name": "Franck Lefevre", "homepage": "http://blog.rootslabs.net" } + ], "require": { "php": ">=5.2.0", From 1e50dc0c4bd776eb42ec4e8504b2c61afbcff74b Mon Sep 17 00:00:00 2001 From: Progi1984 Date: Fri, 13 Dec 2013 11:39:03 +0100 Subject: [PATCH 4/4] CI via Travis --- .travis.yml | 40 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100644 .travis.yml diff --git a/.travis.yml b/.travis.yml new file mode 100644 index 00000000..2cca49ae --- /dev/null +++ b/.travis.yml @@ -0,0 +1,40 @@ +language: php +php: + - 5.3.3 + - 5.3 + - 5.4 + - 5.5 + +before_script: + ## Composer + - curl -s http://getcomposer.org/installer | php + - php composer.phar install + ## PHP_CodeSniffer + - pyrus install pear/PHP_CodeSniffer + - phpenv rehash + ## PHP Copy/Paste Detector + - curl -o phpcpd.phar https://phar.phpunit.de/phpcpd.phar + ## PHP Mess Detector + - pear config-set preferred_state beta + - printf "\n" | pecl install imagick + - pear channel-discover pear.phpmd.org + - pear channel-discover pear.pdepend.org + - pear install --alldeps phpmd/PHP_PMD + - phpenv rehash + ## PHPLOC + - curl -o phploc.phar https://phar.phpunit.de/phploc.phar + +script: + ## PHP_CodeSniffer + - phpcs --standard=PSR1 src/ + - phpcs --standard=PSR2 src/ + ## PHP Copy/Paste Detector + - php phpcpd.phar --verbose src/ + ## PHP Mess Detector + - phpmd src/ text codesize,unusedcode,naming,design + ## PHPLOC + - php phploc.phar src/ + +notifications: + email: + - progi1984@gmail.com