Coder Social home page Coder Social logo

re() doesn't reload observers code about tinx HOT 5 CLOSED

furey avatar furey commented on May 17, 2024
re() doesn't reload observers code

from tinx.

Comments (5)

furey avatar furey commented on May 17, 2024 2

Hi @anderson-flores,

I've just spent a bit of time looking into this.

It seems like classes used in service providers don't reload changes properly on re().

I'm guessing this has something to do with class autoloading and where these classes are first defined in an application's running order relative to Tinx's reload functionality… but I'm not sure.

For example, if your ObserverProvider has use statements referencing your model and observer classes, they probably won't reload class changes on re(). But if you pulled those classes out of that provider and instead called App\[Model]::observe(App\Observers\[Model]Observer::class) from somewhere else in your application (outside of the server provider stack), your changes will probably reload correctly on re().

I'm not sure how to fix the issue, but am documenting my findings here in case it prompts any ideas or suggestions from any other users.

Cheers.

from tinx.

ajthinking avatar ajthinking commented on May 17, 2024

Are you on version 2.1.6? Where is your observer class located and is it autoloaded? I have noted the following in my current application:

  • changes in User.php are reloaded with re()
  • changes in app\Helpers.php are NOT reloaded with re()
    Even though my Helper class is autoloaded
    "autoload": {
        "classmap": [
            "database/seeds",
            "database/factories"
        ],
        "psr-4": {
            "App\\": "app/"
        },
        "files": [
            "app/Helpers.php"
        ]
    },

Feels like it might be the same error we are experiencing? Can you confirm by adding a static to User.php and modify it between re()-calls?

    public static function sayHi()
    {
        return "change_number_123";
    }

from tinx.

anderson-flores avatar anderson-flores commented on May 17, 2024

Yes, I'm in version 2.1.6.
I tested what you asked for and it worked with re();

My observer is in App/Observers it is called by ObserverProvider, this provider is in the default App/Providers folder and it is registered in config/app.php along with the other providers.

from tinx.

TsaiKoga avatar TsaiKoga commented on May 17, 2024

I have this problem with my [email protected].
After I updated php version to 7.2,
re() is working now

from tinx.

furey avatar furey commented on May 17, 2024

⛔️ Closing open issues and pull requests as the project is now archived.

from tinx.

Related Issues (20)

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.