Giter VIP home page Giter VIP logo

laravel-settings's Introduction

Hi there ๐Ÿ‘‹


I'm a Senior Software Engineer, previously was working in one of the biggest bank in my home country, then moving to Amsterdam to join an incredible fintech company and now I am part of JP Morgan & Chase UK by day. I am also a programming language tinkerer by night. I love to explore new tech trends. Currently writing beautiful frontend with mostly angular, react and also moving from java to kotlin ๐Ÿ˜ผ.

Apart from that, I also love to implement design patterns, algorithms and data structures just to think them through to really "get" them, make my code performance great and share my newfound knowledge with everyone.



๐Ÿ‘ฏ Iโ€™m looking to collaborate on interesting Kotlin projects if you need any help.

Main Languanges

Main Frameworks & Tools


  • ๐Ÿ”ญ Iโ€™m currently working on few Projects by using (React, Spring Boot, Java and Kotlin)
  • ๐ŸŒฑ Iโ€™m currently interested in Kotlin
  • ๐Ÿ’ฌ Ask me about React, Angular, Spring Boot, Laravel (I used to use Laravel heavily in my side project)
  • ๐Ÿ“ซ How to reach me: Linkedin

laravel-settings's People

Contributors

beeglebug avatar brucewu16899 avatar danieldemon avatar efriandika avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

laravel-settings's Issues

Please update your package to laravel 5.2

I just tried to require your package to composer and get this :

Your requirements could not be resolved to an installable set of packages.

  Problem 1
    - Conclusion: remove laravel/framework v5.2.6
    - Conclusion: don't install laravel/framework v5.2.6
    - Conclusion: don't install laravel/framework v5.2.5
    - Conclusion: don't install laravel/framework v5.2.4
    - Conclusion: don't install laravel/framework v5.2.3
    - Conclusion: don't install laravel/framework v5.2.2
    - Conclusion: don't install laravel/framework v5.2.1
    - efriandika/laravel-settings v1.0.0 requires illuminate/support 5.0.x -> satisfiable by illuminate/support[v5.0.0, v5.0.22, v5.0.25, v5.0.26, v5.0.28, v5.0.33, v5.0.4].
    - efriandika/laravel-settings v1.0.1 requires illuminate/support 5.0.x -> satisfiable by illuminate/support[v5.0.0, v5.0.22, v5.0.25, v5.0.26, v5.0.28, v5.0.33, v5.0.4].
    - efriandika/laravel-settings v1.1.0 requires illuminate/support 5.1.x -> satisfiable by illuminate/support[v5.1.1, v5.1.13, v5.1.16, v5.1.2, v5.1.20, v5.1.22, v5.1.25, v5.1.28, v5.1.6, v5.1.8].
    - efriandika/laravel-settings v1.2.0 requires illuminate/support 5.1.x -> satisfiable by illuminate/support[v5.1.1, v5.1.13, v5.1.16, v5.1.2, v5.1.20, v5.1.22, v5.1.25, v5.1.28, v5.1.6, v5.1.8].
    - efriandika/laravel-settings v1.2.1 requires illuminate/support 5.1.x -> satisfiable by illuminate/support[v5.1.1, v5.1.13, v5.1.16, v5.1.2, v5.1.20, v5.1.22, v5.1.25, v5.1.28, v5.1.6, v5.1.8].
    - efriandika/laravel-settings v1.2.2 requires illuminate/support 5.1.x -> satisfiable by illuminate/support[v5.1.1, v5.1.13, v5.1.16, v5.1.2, v5.1.20, v5.1.22, v5.1.25, v5.1.28, v5.1.6, v5.1.8].
    - don't install illuminate/support v5.0.0|don't install laravel/framework v5.2.0
    - don't install illuminate/support v5.0.22|don't install laravel/framework v5.2.0
    - don't install illuminate/support v5.0.25|don't install laravel/framework v5.2.0
    - don't install illuminate/support v5.0.26|don't install laravel/framework v5.2.0
    - don't install illuminate/support v5.0.28|don't install laravel/framework v5.2.0
    - don't install illuminate/support v5.0.33|don't install laravel/framework v5.2.0
    - don't install illuminate/support v5.0.4|don't install laravel/framework v5.2.0
    - don't install illuminate/support v5.1.1|don't install laravel/framework v5.2.0
    - don't install illuminate/support v5.1.13|don't install laravel/framework v5.2.0
    - don't install illuminate/support v5.1.16|don't install laravel/framework v5.2.0
    - don't install illuminate/support v5.1.2|don't install laravel/framework v5.2.0
    - don't install illuminate/support v5.1.20|don't install laravel/framework v5.2.0
    - don't install illuminate/support v5.1.22|don't install laravel/framework v5.2.0
    - don't install illuminate/support v5.1.25|don't install laravel/framework v5.2.0
    - don't install illuminate/support v5.1.28|don't install laravel/framework v5.2.0
    - don't install illuminate/support v5.1.6|don't install laravel/framework v5.2.0
    - don't install illuminate/support v5.1.8|don't install laravel/framework v5.2.0
    - Installation request for laravel/framework 5.2.* -> satisfiable by laravel/framework[v5.2.0, v5.2.1, v5.2.2, v5.2.3, v5.2.4, v5.2.5, v5.2.6].
    - Installation request for efriandika/laravel-settings 1.* -> satisfiable by efriandika/laravel-settings[v1.0.0, v1.0.1, v1.1.0, v1.2.0, v1.2.1, v1.2.2].

requires another package to install

Because you are renaming column,
we need to have doctrine/dbal package

please add that in composer require or somewhere in readme.

personally it looks overkill for me to having dbal package just for those 2 columns.

[ErrorException] Undefined index: index_type

After php artisan migrate couse an error
local.ERROR: ErrorException: Undefined index: index_type in /var/www/html/laravelwork1/vendor/doctrine/dbal/lib/Doctrine/DBAL/Schema/MySqlSchemaManager.php:75
Stack trace:
#0 /var/www/html/laravelwork1/vendor/doctrine/dbal/lib/Doctrine/DBAL/Schema/MySqlSchemaManager.php(75): Illuminate\Foundation\Bootstrap\HandleExceptions->handleError(8, 'Undefined index...', '/var/www/html/l...', 75, Array)
#1 /var/www/html/laravelwork1/vendor/doctrine/dbal/lib/Doctrine/DBAL/Schema/AbstractSchemaManager.php(193): Doctrine\DBAL\Schema\MySqlSchemaManager->_getPortableTableIndexesList(Array, 'settings')
#2 /var/www/html/laravelwork1/vendor/doctrine/dbal/lib/Doctrine/DBAL/Schema/AbstractSchemaManager.php(286): Doctrine\DBAL\Schema\AbstractSchemaManager->listTableIndexes('settings')
#3 /var/www/html/laravelwork1/vendor/laravel/framework/src/Illuminate/Database/Connection.php(926): Doctrine\DBAL\Schema\AbstractSchemaManager->listTableDetails('settings')
#4 /var/www/html/laravelwork1/vendor/laravel/framework/src/Illuminate/Database/Schema/Grammars/Grammar.php(41): Illuminate\Database\Connection->getDoctrineColumn('settings', 'key')
#5 /var/www/html/laravelwork1/vendor/laravel/framework/src/Illuminate/Database/Schema/Blueprint.php(107): Illuminate\Database\Schema\Grammars\Grammar->compileRenameColumn(Object(Illuminate\Database\Schema\Blueprint), Object(Illuminate\Support\Fluent), Object(Illuminate\Database\MySqlConnection))
#6 /var/www/html/laravelwork1/vendor/laravel/framework/src/Illuminate/Database/Schema/Blueprint.php(82): Illuminate\Database\Schema\Blueprint->toSql(Object(Illuminate\Database\MySqlConnection), Object(Illuminate\Database\Schema\Grammars\MySqlGrammar))
#7 /var/www/html/laravelwork1/vendor/laravel/framework/src/Illuminate/Database/Schema/Builder.php(229): Illuminate\Database\Schema\Blueprint->build(Object(Illuminate\Database\MySqlConnection), Object(Illuminate\Database\Schema\Grammars\MySqlGrammar))
#8 /var/www/html/laravelwork1/vendor/laravel/framework/src/Illuminate/Database/Schema/Builder.php(130): Illuminate\Database\Schema\Builder->build(Object(Illuminate\Database\Schema\Blueprint))
#9 /var/www/html/laravelwork1/vendor/laravel/framework/src/Illuminate/Support/Facades/Facade.php(237): Illuminate\Database\Schema\Builder->table('settings', Object(Closure))
#10 /var/www/html/laravelwork1/database/migrations/2015_12_15_020453_alter_settings_table.php(17): Illuminate\Support\Facades\Facade::__callStatic('table', Array)
#11 /var/www/html/laravelwork1/vendor/laravel/framework/src/Illuminate/Database/Migrations/Migrator.php(373): AlterSettingsTable->up()
#12 /var/www/html/laravelwork1/vendor/laravel/framework/src/Illuminate/Database/Migrations/Migrator.php(380): Illuminate\Database\Migrations\Migrator->Illuminate\Database\Migrations{closure}()
#13 /var/www/html/laravelwork1/vendor/laravel/framework/src/Illuminate/Database/Migrations/Migrator.php(162): Illuminate\Database\Migrations\Migrator->runMigration(Object(AlterSettingsTable), 'up')
#14 /var/www/html/laravelwork1/vendor/laravel/framework/src/Illuminate/Database/Migrations/Migrator.php(130): Illuminate\Database\Migrations\Migrator->runUp('2015_12_15_0204...', 12, false)
#15 /var/www/html/laravelwork1/vendor/laravel/framework/src/Illuminate/Database/Migrations/Migrator.php(97): Illuminate\Database\Migrations\Migrator->runMigrationList(Array, Array)
#16 /var/www/html/laravelwork1/vendor/laravel/framework/src/Illuminate/Database/Console/Migrations/MigrateCommand.php(65): Illuminate\Database\Migrations\Migrator->run(Array, Array)
#17 [internal function]: Illuminate\Database\Console\Migrations\MigrateCommand->fire()
#18 /var/www/html/laravelwork1/vendor/laravel/framework/src/Illuminate/Container/Container.php(508): call_user_func_array(Array, Array)
#19 /var/www/html/laravelwork1/vendor/laravel/framework/src/Illuminate/Console/Command.php(169): Illuminate\Container\Container->call(Array)
#20 /var/www/html/laravelwork1/vendor/symfony/console/Command/Command.php(261): Illuminate\Console\Command->execute(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#21 /var/www/html/laravelwork1/vendor/laravel/framework/src/Illuminate/Console/Command.php(155): Symfony\Component\Console\Command\Command->run(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#22 /var/www/html/laravelwork1/vendor/symfony/console/Application.php(817): Illuminate\Console\Command->run(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#23 /var/www/html/laravelwork1/vendor/symfony/console/Application.php(185): Symfony\Component\Console\Application->doRunCommand(Object(Illuminate\Database\Console\Migrations\MigrateCommand), Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#24 /var/www/html/laravelwork1/vendor/symfony/console/Application.php(116): Symfony\Component\Console\Application->doRun(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#25 /var/www/html/laravelwork1/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(121): Symfony\Component\Console\Application->run(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#26 /var/www/html/laravelwork1/artisan(35): Illuminate\Foundation\Console\Kernel->handle(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#27 {main}

Maybe change value column to BLOB?

Hi, this is a great little library, thanks for providing it!

Since you are using PHP's serialize function to save data to the table, you might consider changing the column type from TEXT to BLOB. I've run into problems in the past if the table charset isn't unicode, then non-ascii characters wind up corrupting the serialized data. A more detailed explanation of the problem can be found here: https://www.jackreichert.com/2014/02/handling-a-php-unserialize-offset-error/

...but note that I've found a much easier solution than all the base_64_encode/decode stuff mentioned in that link is to just make the column a BLOB instead of TEXT.

array_key_exists null parameter error

Upon attempting to use laravel-settings for the first time I receive the following error and stack trace upon trying to use the get method:

ErrorException in Arr.php line 145:
array_key_exists() expects parameter 2 to be array, null given
in Arr.php line 145
at HandleExceptions->handleError('2', 'array_key_exists() expects parameter 2 to be array, null given', 'H:\meej\files\php\projects\raven\vendor\laravel\framework\src\Illuminate\Support\Arr.php', '145', array('array' => null, 'key' => 'theme-color'))
at array_key_exists('theme-color', null) in Arr.php line 145
at Arr::exists(null, 'theme-color') in Arr.php line 269
at Arr::get(null, 'theme-color', 'blue') in helpers.php line 171
at array_get(null, 'theme-color', 'blue') in Setting.php line 105
at Setting->get('theme-color', 'blue') in Facade.php line 221
at Facade::__callStatic('get', array('theme-color', 'blue')) in ComposerServiceProvider.php line 34
at Facade::get('theme-color', 'blue') in ComposerServiceProvider.php line 34

From what I can tell this error is due to the fact that the users's db settings column is null. This is to be expected as the user at this time has no custom settings defined.

A quick fix would be to check for this situation:

--- src/Setting.php (revision )
+++ src/Setting.php (revision )
@@ -225,7 +225,7 @@
             ->value($this->column);

         $this->settings[$constraint_value] = json_decode($json, true);
-        
+        if($this->settings[$constraint_value] === null) $this->settings[$constraint_value] = array();

         $this->dirty[$constraint_value] = false;
         $this->loaded[$constraint_value] = true;

My PHP version is 5.6.14

unserializing not working properly in newest laravel version

Hey there,
I do not know if this is actually a fault of my installation but or not, but I am currently getting the following error from Laravel using your newest fork (I didn't use 1.2.5 since it has the share bug).

unserialize(): Error at offset 0 of 3 bytes

This happens to every string I try to use. I tried it using the Facade as well as the helper.

I am currently using Laravel 5.4.12

What I have tried:

  • php artisan cache:clear
  • Deleted all the files from storage/framework/sessions and views
  • Cleared my cookies

`setting_value` and `setting_key` not found in table

I have this strange problem from nowhere.
It says:
exception 'PDOException' with message 'SQLSTATE[42S22]: Column not found: 1054 Unknown column 'setting_value' in 'field list'' in /disk1/.../vendor/laravel/framework/src/Illuminate/Database/Connection.php:319

But migration defines structure with no setting_value or setting_key in it:

Schema::create('settings', function(Blueprint $table)
        {
            $table->string('key', 100)->index()->unique('key');
            $table->text('value', 65535)->nullable();
        });

So hows that possible? Its been working since april'15

Non-static method Efriandika\LaravelSettings\Settings::set() should not be called statically

Non-static method Efriandika\LaravelSettings\Settings::set() should not be called statically
Not sure what to do with it, since all I am trying to do is:

<?php namespace App\Http\Controllers;
use Efriandika\LaravelSettings\Settings;

class InvoiceController extends Controller {
    public function issue(){
        Settings::set('next_id', '18');
    }
}

Strange thing, that I have no problem working with ::set inside SettingController.

Bug on SQL Server

[Illuminate\Database\QueryException]   SQLSTATE[HY000]: General error: 2714 General SQL Server error: Check messages from the SQL Server [2714] (severity 16) [(null)] (SQL: create table "settings_local" ("key" nvarchar(100) not null, "value" nvarchar(max) null))

New release

New release of version 1.2.5 still use

share method.

Use multiple/custom driver for cache

Can you add feature to using selective/custom cache driver and using laravel cache config for driver config.
Also you could use Laravel Cache driver for get/set cache data.

If you are agree with me, i can implement this feature and send pull request.

Laravel 6

Does anyone think they are going to update this project to support Laravel 6? If not does anyone know a good substitute?

Fallback to Laravel default config

Hi there, would you like to add functionality so that if key not exist and I don't provide default value, it will fallback to default Laravel config? Maybe it can configureable via config file too ('fallback' => true/false).

Sample:

Settings::get('mail.driver'); // if mail.driver not exist, than the value from config/mail.php will returned

With this functionality, I can provide something like "Reset To Default" :D

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.