diff --git a/.scrutinizer.yml b/.scrutinizer.yml
index de09355..3622e71 100644
--- a/.scrutinizer.yml
+++ b/.scrutinizer.yml
@@ -1,9 +1,12 @@
-inherit: true
-
checks:
- php:
- code_rating: true
- duplication: true
+ php: true
+
+build:
+ nodes:
+ analysis:
+ tests:
+ override: [php-scrutinizer-run]
filter:
- paths: [src/*, tests/*]
+ paths: ["src/*", "tests/*"]
+
diff --git a/.travis.yml b/.travis.yml
index 575ad91..f94c8b4 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -1,25 +1,33 @@
-# See https://github.com/silverstripe/silverstripe-travis-support for setup details
-
-sudo: false
-
language: php
+dist: trusty
+
+env:
+ global:
+ - COMPOSER_ROOT_VERSION=2.0.x-dev
+
matrix:
include:
- php: 5.6
- env: DB=MYSQL CORE_RELEASE=4
- - php: 5.6
- env: DB=PGSQL CORE_RELEASE=4
+ env: DB=MYSQL PHPCS_TEST=1 PHPUNIT_TEST=1
- php: 7.0
- env: DB=MYSQL CORE_RELEASE=4
+ env: DB=PGSQL PHPUNIT_TEST=1
- php: 7.1
- env: DB=PGSQL CORE_RELEASE=4
+ env: DB=MYSQL PHPUNIT_COVERAGE_TEST=1
before_script:
- - composer self-update || true
- - git clone git://github.com/silverstripe/silverstripe-travis-support.git ~/travis-support
- - php ~/travis-support/travis_setup.php --source `pwd` --target ~/builds/ss
- - cd ~/builds/ss
+ - phpenv rehash
+ - phpenv config-rm xdebug.ini
+
+ - composer validate
+ - composer require --prefer-dist --no-update silverstripe/recipe-cms:1.0.x-dev
+ - if [[ $DB == PGSQL ]]; then composer require --prefer-dist --no-update silverstripe/postgresql:2.0.x-dev; fi
+ - composer install --prefer-dist --no-interaction --no-progress --no-suggest --optimize-autoloader --verbose --profile
script:
- - vendor/bin/phpunit tagfield/tests
+ - if [[ $PHPUNIT_TEST ]]; then vendor/bin/phpunit; fi
+ - if [[ $PHPUNIT_COVERAGE_TEST ]]; then phpdbg -qrr vendor/bin/phpunit --coverage-clover=coverage.xml; fi
+ - if [[ $PHPCS_TEST ]]; then vendor/bin/phpcs --standard=vendor/silverstripe/framework/phpcs.xml.dist src/ tests/; fi
+
+after_success:
+ - if [[ $PHPUNIT_COVERAGE_TEST ]]; then bash <(curl -s https://codecov.io/bash) -f coverage.xml; fi
diff --git a/_config.php b/_config.php
index c2883ec..b3d9bbc 100644
--- a/_config.php
+++ b/_config.php
@@ -1,3 +1 @@
+
+ tests/
+
+
+
+ src/
+
+ tests/
+
+
+
+
diff --git a/readme.md b/readme.md
index 57fa87b..aeafa74 100644
--- a/readme.md
+++ b/readme.md
@@ -2,16 +2,15 @@
Custom tag input field, for SilverStripe.
-[![Build Status](http://img.shields.io/travis/silverstripe-labs/silverstripe-tagfield.svg?style=flat-square)](https://travis-ci.org/silverstripe-labs/silverstripe-tagfield)
-[![Code Quality](http://img.shields.io/scrutinizer/g/silverstripe-labs/silverstripe-tagfield.svg?style=flat-square)](https://scrutinizer-ci.com/g/silverstripe-labs/silverstripe-tagfield)
-[![Code Coverage](http://img.shields.io/scrutinizer/coverage/g/silverstripe-labs/silverstripe-tagfield.svg?style=flat-square)](https://scrutinizer-ci.com/g/silverstripe-labs/silverstripe-tagfield)
-[![Version](http://img.shields.io/packagist/v/silverstripe/tagfield.svg?style=flat-square)](https://packagist.org/packages/silverstripe/tagfield)
-[![License](http://img.shields.io/packagist/l/silverstripe/tagfield.svg?style=flat-square)](license.md)
+[![Build Status](https://travis-ci.org/silverstripe/silverstripe-tagfield.svg?branch=master)](https://travis-ci.org/silverstripe/silverstripe-tagfield)
+[![Code Quality](http://img.shields.io/scrutinizer/g/silverstripe-labs/silverstripe-tagfield.svg?style=flat)](https://scrutinizer-ci.com/g/silverstripe-labs/silverstripe-tagfield)
+[![Code coverage](https://codecov.io/gh/silverstripe/silverstripe-tagfield/branch/master/graph/badge.svg)](https://codecov.io/gh/silverstripe/silverstripe-tagfield)
+[![Version](http://img.shields.io/packagist/v/silverstripe/tagfield.svg?style=flat)](https://packagist.org/packages/silverstripe/tagfield)
+[![License](http://img.shields.io/packagist/l/silverstripe/tagfield.svg?style=flat)](license.md)
## Requirements
-* SilverStripe 3.1 or newer
-* Database: MySQL 5+, SQLite3, Postgres 8.3, SQL Server 2008
+* SilverStripe 4.0
## Installing
@@ -24,22 +23,28 @@ $ composer require silverstripe/tagfield
### Relational Tags
```php
-class BlogPost extends DataObject {
- private static $many_many = array(
- 'BlogTags' => 'BlogTag'
- );
+use SilverStripe\ORM\DataObject;
+
+class BlogPost extends DataObject
+{
+ private static $many_many = [
+ 'BlogTags' => BlogTag::class
+ ];
}
```
```php
-class BlogTag extends DataObject {
- private static $db = array(
- 'Title' => 'Varchar(200)',
- );
+use SilverStripe\ORM\DataObject;
- private static $belongs_many_many = array(
- 'BlogPosts' => 'BlogPost'
- );
+class BlogTag extends DataObject
+{
+ private static $db = [
+ 'Title' => 'Varchar(200)',
+ ];
+
+ private static $belongs_many_many = [
+ 'BlogPosts' => BlogPost::class
+ ];
}
```
@@ -57,10 +62,13 @@ $field = TagField::create(
### String Tags
```php
-class BlogPost extends DataObject {
- private static $db = array(
- 'Tags' => 'Text'
- );
+use SilverStripe\ORM\DataObject;
+
+class BlogPost extends DataObject
+{
+ private static $db = [
+ 'Tags' => 'Text',
+ ];
}
```
@@ -68,7 +76,7 @@ class BlogPost extends DataObject {
$field = StringTagField::create(
'Tags',
'Tags',
- array('one', 'two'),
+ ['one', 'two'],
explode(',', $this->Tags)
);
@@ -85,4 +93,4 @@ All methods, with `public` visibility, are part of the public API. All other met
## Reporting Issues
-Please [create an issue](http://github.com/silverstripe-labs/silverstripe-tagfield/issues) for any bugs you've found, or features you're missing.
+Please [create an issue](http://github.com/silverstripe/silverstripe-tagfield/issues) for any bugs you've found, or features you're missing.
diff --git a/src/StringTagField.php b/src/StringTagField.php
index 2d0c251..edcbe65 100644
--- a/src/StringTagField.php
+++ b/src/StringTagField.php
@@ -150,11 +150,11 @@ class StringTagField extends DropdownField
*/
public function Field($properties = array())
{
- Requirements::css(TAG_FIELD_DIR . '/css/select2.min.css');
- Requirements::css(TAG_FIELD_DIR . '/css/TagField.css');
+ Requirements::css('silverstripe/tagfield:css/select2.min.css');
+ Requirements::css('silverstripe/tagfield:css/TagField.css');
- Requirements::javascript(TAG_FIELD_DIR . '/js/select2.js');
- Requirements::javascript(TAG_FIELD_DIR . '/js/TagField.js');
+ Requirements::javascript('silverstripe/tagfield:js/select2.js');
+ Requirements::javascript('silverstripe/tagfield:js/TagField.js');
$this->addExtraClass('ss-tag-field');
diff --git a/src/TagField.php b/src/TagField.php
index cd55a9d..218282a 100644
--- a/src/TagField.php
+++ b/src/TagField.php
@@ -198,11 +198,11 @@ class TagField extends DropdownField
*/
public function Field($properties = array())
{
- Requirements::css(TAG_FIELD_DIR . '/css/select2.min.css');
- Requirements::css(TAG_FIELD_DIR . '/css/TagField.css');
+ Requirements::css('silverstripe/tagfield:css/select2.min.css');
+ Requirements::css('silverstripe/tagfield:css/TagField.css');
- Requirements::javascript(TAG_FIELD_DIR . '/js/select2.js');
- Requirements::javascript(TAG_FIELD_DIR . '/js/TagField.js');
+ Requirements::javascript('silverstripe/tagfield:js/select2.js');
+ Requirements::javascript('silverstripe/tagfield:js/TagField.js');
$this->addExtraClass('ss-tag-field');
@@ -242,7 +242,7 @@ class TagField extends DropdownField
$source = $this->getSourceList();
- if(!$source) {
+ if (!$source) {
$source = ArrayList::create();
}
@@ -262,9 +262,9 @@ class TagField extends DropdownField
$titleField = $this->getTitleField();
- foreach($source as $object) {
+ foreach ($source as $object) {
$options->push(
- ArrayData::create(array(
+ ArrayData::create(array(
'Title' => $object->$titleField,
'Value' => $object->Title,
'Selected' => in_array($object->Title, $ids),
@@ -273,7 +273,7 @@ class TagField extends DropdownField
}
return $options;
- }
+ }
/**
* {@inheritdoc}
@@ -345,7 +345,7 @@ class TagField extends DropdownField
}
$relation->setByIDList(array_filter($ids));
- }
+ }
/**
* Get or create tag with the given value