Skip to content

Commit a1c6363

Browse files
Merge pull request #12 from markwalet/prefix_constants
Prefix constants
2 parents a22d4a0 + 43cffb0 commit a1c6363

File tree

5 files changed

+148
-106
lines changed

5 files changed

+148
-106
lines changed

README.md

Lines changed: 116 additions & 88 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,8 @@
55
Laravel unique Token Generator
66
```php
77
// Generate unique Token From Database.
8-
$new_token = $token->unique($table_name, $column_name, $size);
8+
$new_token = $token->Unique($table_name, $column_name, $size);
9+
910
```
1011

1112
## Installation
@@ -25,131 +26,158 @@ Dirape\Token\TokenServiceProvider::class
2526
If you want you can use the [facade](http://laravel.com/docs/facades). Add the reference in `config/app.php` to your aliases array.
2627

2728
```php
28-
'Token' => \Dirape\Token\Facades\Facade::class
29+
'Token'=>\Dirape\Token\Facades\Facade::class
2930
```
3031

31-
## Usage
32+
## Documentation
3233

33-
If you want to use a token in you model, you have to add the `DirapeToken` or `DirapeMultiToken` trait to your Eloquent model, depending on if you want to use multiple tokens per model.
34-
To use trait token you need to do some changes in the model that contain the token column.
34+
### ★ New Token Trait ★
35+
##### setup in model
36+
To use new trait token you need to do some changes in the model that contain the token column.
37+
##### One Column Token
3538

36-
### Single token
39+
##### One token Trait allow you to generate token for one columns in the table
3740

38-
* The token gets stored in the database. The column is called `dt_token` by default. To change this, you can add a `protected $DT_column` property to your model.
39-
* Token settings are set by default to this value `['type' => DT_Unique, 'size' => 40, 'special_chr' => false]` to replace with your custom settings add `protected $DT_settings = ['type'=> DT_Unique,'size' => 60,'special_chr' => false];` in the model.
41+
* To use one column token you need to add `` use DirapeToken;`` in the model .
42+
* In database we use default column called ``dt_token`` to replace with your column name add `` protected $DT_Column='column_name';`` in the model .
43+
* Token settings are set by default to this value `` ['type' => DT_Unique, 'size' => 40, 'special_chr' => false]`` to replace with your custom settings add `` protected $DT_settings=['type'=>DT_Unique,'size'=>60,'special_chr'=>false]; `` in the model .
4044
* you should know that we use custom constants for our token type
4145
```php
42-
const DT_Unique = 'Unique';
43-
const DT_UniqueNum = 'UniqueNumber';
44-
const DT_UniqueStr = 'UniqueString';
45-
const DT_Random = 'Random';
46-
const DT_RandomNum = 'RandomNumber';
47-
const DT_RandomStr = 'RandomString';
48-
```
46+
Const DT_Unique = 'Unique';
47+
Const DT_UniqueNum = 'UniqueNumber';
48+
Const DT_UniqueStr = 'UniqueString';
49+
Const DT_Random = 'Random';
50+
Const DT_RandomNum = 'RandomNumber';
51+
Const DT_RandomStr = 'RandomString';
52+
```
4953
* after preparing the model to use our trait token in your code you can set the token with your custom column and settings like this
5054
```php
51-
$user = User::first();
52-
$user->setToken();
53-
$user->save();
55+
$user=User::first();
56+
$user->setToken();
57+
$user->save();
5458
```
55-
* you can use your custom settings in `setToken();` function like this
59+
* you can use your custom settings in ``setToken();`` function like this
5660
```php
57-
$user = User::first();
58-
$user->setToken(DT_UniqueStr, 100, false);
59-
$user->save();
61+
$user=User::first();
62+
$user->setToken(DT_UniqueStr,100,false);
63+
$user->save();
6064
```
6165
* you can set your custom column in the function
6266
```php
63-
$user = User::first();
64-
$user->setToken(DT_UniqueStr, 100, false, 'column_name');
65-
$user->save();
67+
$user=User::first();
68+
$user->setToken(DT_UniqueStr,100,false,'column_name');
69+
$user->save();
6670
```
6771
* To get model query with token you can use `WithToken()` .
68-
```
69-
$user = User::withToken()->get();
70-
```
72+
```
73+
$user=User::WithToken()->get();
74+
```
7175
* To get model query with no tokens you can use flag ``false`` in `WithToken()`
72-
```
73-
$user = User::withToken(false)->get();
74-
```
75-
### Multiple tokens
76+
```
77+
$user=User::WithToken(false)->get();
78+
```
79+
##### Multi Column Token
80+
81+
##### Multi token allow you to generate tokens for multi columns in the same table
7682

83+
* To use multi column token you need to add `` use DirapeMultiToken;`` in the model .
7784
* Columns settings are not set by default so you need to make your custom settings in the model
7885
```php
79-
protected $DMT_columns = [
80-
'unique_id' => [
81-
'type' => DT_Unique,
82-
'size' => 60,
83-
'special_chr' => false
84-
],
85-
'unique_uid' => [
86-
'type' => DT_Unique,
87-
'size' => 30,
88-
'special_chr' => false
89-
],
90-
];
86+
protected $DMT_columns=[
87+
'unique_id'=>['type'=>DT_Unique,'size'=>60,'special_chr'=>false],
88+
'unique_uid'=>['type'=>DT_Unique,'size'=>30,'special_chr'=>false],
89+
];
90+
9191
```
9292
* you should know that we use custom constants for our token type
93-
```php
94-
const DT_Unique = 'Unique';
95-
const DT_UniqueNum = 'UniqueNumber';
96-
const DT_UniqueStr = 'UniqueString';
97-
const DT_Random = 'Random';
98-
const DT_RandomNum = 'RandomNumber';
99-
const DT_RandomStr = 'RandomString';
100-
```
93+
```php
94+
Const DT_Unique = 'Unique';
95+
Const DT_UniqueNum = 'UniqueNumber';
96+
Const DT_UniqueStr = 'UniqueString';
97+
Const DT_Random = 'Random';
98+
Const DT_RandomNum = 'RandomNumber';
99+
Const DT_RandomStr = 'RandomString';
100+
```
101101
* after preparing the model to use our trait multi token in your code you can set the tokens with only one function
102-
```php
103-
$user = User::first();
104-
$user->setTokens();
105-
$user->save();
106-
```
107-
## Methods
102+
```php
103+
$user=User::first();
104+
$user->setTokens();
105+
$user->save();
106+
```
107+
108+
109+
### ★ The old way ★
110+
#### Generate unique token
108111

109-
Here you can see an example of just how simple this package is to use.
112+
With this package you can generate unqiue token not repated in database just by using `unique($table_name,$column_name,$size)` Function `$table_name` is the table name in database , `$column_name` is the column name in the table, `$size` is token size.
110113

111-
### Random tokens
112114

113-
```php
114-
// Generate random token with upper- and lowercase letter and numbers. (a-z, A-Z, 0-9)
115-
Token::random('users', 'api_token', 60);
116-
// Results in: "6nz1pk70YdQZP01tPXdQArx6B6IVwr7v3vnKqLYkamAifvmrG8TVrza42wZt"
115+
#### Generate unique string token
117116

118-
// Generate random token with numbers. (0-9)
119-
Token::randomNumber('products', 'identifier', 15);
120-
// Results in: "964730723939485"
117+
generate unique strings token with the same signature of unique token with function `UniqueString($table_name,$column_name,$size)`.
121118

122-
// Generate random token with upper- and lowercase letters. (a-z, A-Z)
123-
Token::randomString('coupons', 'code', 10);
124-
// Results in: "bIQBqnlRzG"
125-
```
126119

127-
### Unique tokens
120+
#### Generate unique integer token
121+
122+
generate unique integers token with the same signature of unique token with function `UniqueNumber($table_name,$column_name,$size)`.
123+
124+
125+
#### Generate random token
126+
generate random token with function `Random($size)` and `$size` is the size of token length.
127+
128+
129+
#### Generate random integer token
130+
generate random integer token with function `RandomNumber($size)` and `$size` is the size of token length.
131+
132+
133+
#### Generate random string token
134+
generate random string token with function `RandomString($size)` and `$size` is the size of token length.
135+
136+
#### Special Characters
137+
138+
use `true` to allow special characters in your token `!@#$%^&*()` in all functions just like `Random($size,true)`.
139+
140+
### Examples
141+
142+
Here you can see an example of just how simple this package is to use.
143+
#### Unique Token
128144
```php
129-
// Generate unique token with upper- and lowercase letter and numbers. (a-z, A-Z, 0-9)
130-
Token::unique('users', 'api_token', 60);
131-
// Results in: "6nz1pk70YdQZP01tPXdQArx6B6IVwr7v3vnKqLYkamAifvmrG8TVrza42wZt"
132145

133-
// Generate unique token with numbers. (0-9)
134-
Token::uniqueNumber('products', 'identifier', 15);
135-
// Results in: "964730723939485"
146+
// Generate unique token not rebeated in database table with column name
147+
Token::Unique($table_name, $column_name, 10 );
148+
//Result: fCWih6TDAf
149+
150+
151+
// Generate unique integer token not rebeated in database table with column name
152+
Token::UniqueNumber($table_name, $column_name, 10 );
153+
//Result: 9647307239
136154

137-
// Generate unique token with upper- and lowercase letters. (a-z, A-Z)
138-
Token::uniqueString('coupons', 'code', 10);
139-
// Results in: "bIQBqnlRzG"
140-
```
141155

142-
### Special characters
156+
// Generate unique string token not rebeated in database table with column name
157+
Token::UniqueString($table_name, $column_name, 10 );
158+
//Result: SOUjkyAyxC
143159

144-
For every method there is an optional last parameter. This parameter determines if the token can contain special characters. (`!@#$%^&*()`)
145160

161+
//You can use special characters just add "true" to the function
162+
Token::Unique($table_name, $column_name, 10,true );
163+
//Result: H@klU$u^3z
164+
```
165+
166+
#### Random Token (not unique)
146167
```php
168+
$size=10;
169+
// Generate random token
170+
Token::Random($size);
171+
172+
// Generate random integer token
173+
Token::RandomNumber($size);
174+
175+
// Generate random string token
176+
Token::RandomString($size);
147177

148-
Token::unique('users', 'api_token', 60, true);
149-
// Results in "^QRMBksyp*(tGfLlzp9JCFayE7!gIpb1ssjrIyECp9$S2wM1VeL7fzARm!sU"
178+
//You can use special characters just add "true" to the function
179+
Token::Random($size,true);
150180

151-
Token::randomString(15, true);
152-
// Results in "$YnBG(jFSbpL^EF"
153181
```
154182

155183
## License

src/DirapeMultiToken.php

Lines changed: 7 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -16,34 +16,33 @@ public function setTokens()
1616
if (! isset($this->DMT_columns)) {
1717
throw new Exception("No Columns settings found in model, please see our package documentation https://github.com/F54it/laravel-token");
1818
}
19+
1920
$table = $this->getTable();
2021
$token = new Token();
2122
foreach ($this->DMT_columns as $column => $settings) {
2223
$generated_token = null;
2324
switch ($settings['type']) {
24-
case DT_Unique:
25-
$generated_token = $token->unique($table, $column, $settings['size'], $settings['special_chr']);
26-
break;
27-
case DT_UniqueNum:
25+
case Token::UNIQUE_NUMBER:
2826
$generated_token = $token->uniqueNumber($table, $column, $settings['size'], $settings['special_chr']);
2927

3028
break;
31-
case DT_UniqueStr:
29+
case Token::UNIQUE_STRING:
3230
$generated_token = $token->uniqueString($table, $column, $settings['size'], $settings['special_chr']);
3331

3432
break;
35-
case DT_Random:
33+
case Token::RANDOM:
3634
$generated_token = $token->random($settings['size'], $settings['special_chr']);
3735

3836
break;
39-
case DT_RandomNum:
37+
case Token::RANDOM_NUMBER:
4038
$generated_token = $token->randomNumber($settings['size'], $settings['special_chr']);
4139

4240
break;
43-
case DT_RandomStr:
41+
case Token::RANDOM_STRING:
4442
$generated_token = $token->randomString($settings['size'], $settings['special_chr']);
4543

4644
break;
45+
case Token::UNIQUE:
4746
default:
4847
$generated_token = $token->unique($table, $column, $settings['size'], $settings['special_chr']);
4948
break;

src/DirapeToken.php

Lines changed: 8 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -57,31 +57,30 @@ public function setToken($type = null, int $size = null, bool $specialCharacter
5757
$token = new Token();
5858
$generated_token = null;
5959
switch ($this->DT_settings['type']) {
60-
case DT_Unique:
61-
$generated_token = $token->unique($table, $this->DT_Column, $this->DT_settings['size'], $this->DT_settings['special_chr']);
62-
break;
63-
case DT_UniqueNum:
60+
case Token::UNIQUE_NUMBER:
6461
$generated_token = $token->uniqueNumber($table, $this->DT_Column, $this->DT_settings['size'], $this->DT_settings['special_chr']);
6562

6663
break;
67-
case DT_UniqueStr:
64+
case Token::UNIQUE_STRING:
6865
$generated_token = $token->uniqueString($table, $this->DT_Column, $this->DT_settings['size'], $this->DT_settings['special_chr']);
6966

7067
break;
71-
case DT_Random:
68+
case Token::RANDOM:
7269
$generated_token = $token->random($this->DT_settings['size'], $this->DT_settings['special_chr']);
7370

7471
break;
75-
case DT_RandomNum:
72+
case Token::RANDOM_NUMBER:
7673
$generated_token = $token->randomNumber($this->DT_settings['size'], $this->DT_settings['special_chr']);
7774

7875
break;
79-
case DT_RandomStr:
76+
case Token::RANDOM_STRING:
8077
$generated_token = $token->randomString($this->DT_settings['size'], $this->DT_settings['special_chr']);
8178

8279
break;
80+
case Token::UNIQUE:
8381
default:
84-
$generated_token = $token->Unique($table, $this->DT_Column, $this->DT_settings['size'], $this->DT_settings['special_chr']);
82+
$generated_token = $token->unique($table, $this->DT_Column, $this->DT_settings['size'], $this->DT_settings['special_chr']);
83+
8584
break;
8685
}
8786

@@ -94,7 +93,6 @@ public function setToken($type = null, int $size = null, bool $specialCharacter
9493
*
9594
* @param Builder $query
9695
* @param bool $flag
97-
*
9896
* @return Builder
9997
*/
10098
public function scopeWithToken($query, $flag = true)

src/Token.php

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,16 @@
66

77
class Token
88
{
9+
/**
10+
* Methods.
11+
*/
12+
const UNIQUE = 'Unique';
13+
const UNIQUE_NUMBER = 'UniqueNumber';
14+
const UNIQUE_STRING = 'UniqueString';
15+
const RANDOM = 'Random';
16+
const RANDOM_NUMBER = 'RandomNumber';
17+
const RANDOM_STRING = 'RandomString';
18+
919
/**
1020
* Create a unique token.
1121
*

src/TokenServiceProvider.php

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,12 +14,19 @@ class TokenServiceProvider extends ServiceProvider
1414
public function boot()
1515
{
1616
if (! defined("DT_STARTED")) {
17+
/** @deprecated */
1718
define('DT_STARTED', true);
19+
/** @deprecated */
1820
define('DT_Unique', 'Unique');
21+
/** @deprecated */
1922
define('DT_UniqueNum', 'UniqueNumber');
23+
/** @deprecated */
2024
define('DT_UniqueStr', 'UniqueString');
25+
/** @deprecated */
2126
define('DT_Random', 'Random');
27+
/** @deprecated */
2228
define('DT_RandomNum', 'RandomNumber');
29+
/** @deprecated */
2330
define('DT_RandomStr', 'RandomString');
2431
}
2532
}

0 commit comments

Comments
 (0)