Skip to content

Commit

Permalink
initial commit
Browse files Browse the repository at this point in the history
  • Loading branch information
klimov-paul committed Jul 6, 2023
0 parents commit 4e87d11
Show file tree
Hide file tree
Showing 14 changed files with 328 additions and 0 deletions.
9 changes: 9 additions & 0 deletions .gitattributes
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
# Ignore all test and documentation for archive
/.github export-ignore
/.gitattributes export-ignore
/.gitignore export-ignore
/.scrutinizer.yml export-ignore
/.travis.yml export-ignore
/phpunit.xml.dist export-ignore
/tests export-ignore
/docs export-ignore
4 changes: 4 additions & 0 deletions .github/FUNDING.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
# These are supported funding model platforms

github: [klimov-paul]
patreon: klimov_paul
14 changes: 14 additions & 0 deletions .github/ISSUE_TEMPLATE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
### What steps will reproduce the problem?

### What is the expected result?

### What do you get instead?

### Additional info

| Q | A
|-----------------------| ---
| This Package Version | 1.?.?
| Yii Framework Version | 1.1.?
| PHP version |
| Operating system |
7 changes: 7 additions & 0 deletions .github/PULL_REQUEST_TEMPLATE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
| Q | A
| ------------- | ---
| Is bugfix? | ✔️/❌
| New feature? | ✔️/❌
| Breaks BC? | ✔️/❌
| Tests pass? | ✔️/❌
| Fixed issues | comma-separated list of tickets # fixed by the PR, if any
31 changes: 31 additions & 0 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
name: build

on: [push, pull_request]

jobs:
phpunit:
name: PHP ${{ matrix.php }} on ${{ matrix.os }}
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest]
php: ['7.1', '7.2', '7.3', '7.4', '8.0', '8.1', '8.2']

steps:
- name: Checkout
uses: actions/checkout@v3

- name: Install PHP
uses: shivammathur/setup-php@v2
with:
php-version: ${{ matrix.php }}
extensions: mbstring, pdo, sqlite, pdo_sqlite
tools: composer:v2
coverage: none

- name: Install dependencies
run: |
composer update --prefer-dist --no-interaction --no-progress --optimize-autoloader --ansi
- name: Run unit tests
run: vendor/bin/phpunit --colors=always
35 changes: 35 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
# phpstorm project files
.idea

# netbeans project files
nbproject

# zend studio for eclipse project files
.buildpath
.project
.settings

# windows thumbnail cache
Thumbs.db

# composer vendor dir
/vendor

/composer.lock

# composer itself is not needed
composer.phar

# Mac DS_Store Files
.DS_Store

# phpunit itself is not needed
phpunit.phar
# local phpunit config
/phpunit.xml
# phpunit cache
.phpunit.result.cache

# test runtime files
/.phpunit.cache
/tests/runtime
7 changes: 7 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
Yii1 ActiveRecord Soft Delete extension
=======================================

1.0.0 Under Development
-----------------------

- Initial release.
32 changes: 32 additions & 0 deletions LICENSE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
This is free software. It is released under the terms of the
following BSD License.

Copyright © 2023 by Yii1Tech (https://github.com/yii1tech)
All rights reserved.

Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions
are met:

* Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in
the documentation and/or other materials provided with the
distribution.
* Neither the name of Yii1Tech nor the names of its
contributors may be used to endorse or promote products derived
from this software without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
POSSIBILITY OF SUCH DAMAGE.
50 changes: 50 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
<p align="center">
<a href="https://github.com/yii1tech" target="_blank">
<img src="https://avatars.githubusercontent.com/u/134691944" height="100px">
</a>
<h1 align="center">Application Runtime Configuration Extension for Yii 1</h1>
<br>
</p>

This extension provides support for Yii1 ActiveRecord soft delete.

For license information check the [LICENSE](LICENSE.md)-file.

[![Latest Stable Version](https://img.shields.io/packagist/v/yii1tech/ar-softdelete.svg)](https://packagist.org/packages/yii1tech/ar-softdelete)
[![Total Downloads](https://img.shields.io/packagist/dt/yii1tech/ar-softdelete.svg)](https://packagist.org/packages/yii1tech/ar-softdelete)
[![Build Status](https://github.com/yii1tech/ar-softdelete/workflows/build/badge.svg)](https://github.com/yii1tech/ar-softdelete/actions)


Installation
------------

The preferred way to install this extension is through [composer](http://getcomposer.org/download/).

Either run

```
php composer.phar require --prefer-dist yii1tech/ar-softdelete
```

or add

```json
"yii1tech/ar-softdelete": "*"
```

to the "require" section of your composer.json.


Usage
-----

This extension provides support for so called "soft" deletion of the ActiveRecord, which means record is not deleted
from database, but marked with some flag or status, which indicates it is no longer active, instead.

This extension provides `\yii1tech\ar\softdelete\SoftDeleteBehavior` ActiveRecord behavior for such solution support
in Yii1. You may attach it to your model class in the following way:

```php
<?php

```
39 changes: 39 additions & 0 deletions composer.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
{
"name": "yii1tech/ar-softdelete",
"description": "Provides support for ActiveRecord soft delete in Yii1",
"keywords": ["yii1", "active", "record", "soft", "smart", "delete", "integrity"],
"license": "BSD-3-Clause",
"support": {
"issues": "https://github.com/yii1tech/ar-softdelete/issues",
"wiki": "https://github.com/yii1tech/ar-softdelete/wiki",
"source": "https://github.com/yii1tech/ar-softdelete"
},
"authors": [
{
"name": "Paul Klimov",
"email": "[email protected]"
}
],
"require": {
"php": ">=7.1",
"yiisoft/yii": "~1.1.0"
},
"require-dev": {
"phpunit/phpunit": "^6.0 || ^7.0 || ^8.0 || ^9.3 || ^10.0.7"
},
"autoload": {
"psr-4": {
"yii1tech\\ar\\softdelete\\": "src"
}
},
"autoload-dev": {
"psr-4": {
"yii1tech\\ar\\softdelete\\test\\": "tests"
}
},
"extra": {
"branch-alias": {
"dev-master": "1.0.x-dev"
}
}
}
15 changes: 15 additions & 0 deletions phpunit.xml.dist
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
<?xml version="1.0" encoding="utf-8"?>
<phpunit bootstrap="./tests/bootstrap.php"
colors="true"
backupGlobals="false"
backupStaticProperties="false"
processIsolation="false"
cacheDirectory=".phpunit.cache"
stopOnError="false"
stopOnFailure="false">
<testsuites>
<testsuite name="Yii1tech Test Suite">
<directory>./tests</directory>
</testsuite>
</testsuites>
</phpunit>
10 changes: 10 additions & 0 deletions src/SoftDeleteBehavior.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
<?php

namespace yii1tech\ar\softdelete;

use CBehavior;

class SoftDeleteBehavior extends CBehavior
{

}
61 changes: 61 additions & 0 deletions tests/TestCase.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
<?php

namespace yii1tech\ar\softdelete\test;

use CConsoleApplication;
use CMap;
use Yii;

class TestCase extends \PHPUnit\Framework\TestCase
{
/**
* {@inheritdoc}
*/
protected function setUp(): void
{
parent::setUp();

$this->mockApplication();
}

/**
* {@inheritdoc}
*/
protected function tearDown(): void
{
$this->destroyApplication();
}

/**
* Populates Yii::app() with a new application
* The application will be destroyed on tearDown() automatically.
* @param array $config The application configuration, if needed
* @param string $appClass name of the application class to create
*/
protected function mockApplication($config = [], $appClass = CConsoleApplication::class)
{
Yii::setApplication(null);

new $appClass(CMap::mergeArray([
'id' => 'testapp',
'basePath' => __DIR__,
'components' => [
'db' => [
'class' => \CDbConnection::class,
'connectionString' => 'sqlite::memory:',
],
'cache' => [
'class' => \CDummyCache::class,
],
],
], $config));
}

/**
* Destroys Yii application by setting it to null.
*/
protected function destroyApplication()
{
Yii::setApplication(null);
}
}
14 changes: 14 additions & 0 deletions tests/bootstrap.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
<?php

// ensure we get report on all possible php errors
error_reporting(-1);

define('YII_ENABLE_ERROR_HANDLER', false);
define('YII_ENABLE_EXCEPTION_HANDLER', false);
define('YII_DEBUG', true);

$_SERVER['SCRIPT_NAME'] = '/' . __DIR__;
$_SERVER['SCRIPT_FILENAME'] = __FILE__;

require_once(__DIR__ . '/../vendor/autoload.php');
require_once(__DIR__ . '/../vendor/yiisoft/yii/framework/yii.php');

0 comments on commit 4e87d11

Please sign in to comment.