Adds a way to write php and run it directly in Laravels' Artisan Tinker.

Overview

Laravel Tinker Plugin Logo

Adds a way to write php in PhpStorm/IDEA and run it directly as if through laravel artisan tinker - allowing you to quickly run a piece of code with all your Laravel classes - with the added benefit of having your IDE's autocompletion, code colors and error inspections.

Find all actions under Tools -> Laravel Tinker or use the default shortcut ctrl + Shift + T to let tinker smartly guess what you want to do (opening/running/etc.).

Credits

Contributing

I do not have a lot of experience with Kotlin, so I kind of tinkered ( 😏 ) this together. Any tips or feedback is welcome in the Issues Tab - or better, make me a PR!

Want to be part of this plugin? Every positive contribution to this project is welcome!

Comments
  • Error and CPU 100% when tinker enabled on unknown specific usecase

    Error and CPU 100% when tinker enabled on unknown specific usecase

    Bug description Plugin causes errors every ms and slows down entire ide (analyzing... never ends etc.) when I disable the plugin there are no errors, reenable the plugin the errors reappear

    Logs

    2021-04-27 10:59:50,304 [ 328304]  ERROR - ij.psi.impl.source.PsiFileImpl - PhpStorm 2021.1.1  Build #PS-211.7036.8 
    2021-04-27 10:59:50,304 [ 328304]  ERROR - ij.psi.impl.source.PsiFileImpl - JDK: 11.0.10; VM: Dynamic Code Evolution 64-Bit Server VM; Vendor: JetBrains s.r.o. 
    2021-04-27 10:59:50,304 [ 328304]  ERROR - ij.psi.impl.source.PsiFileImpl - OS: Windows 10 
    2021-04-27 10:59:50,304 [ 328304]  ERROR - ij.psi.impl.source.PsiFileImpl - Last Action: ShowSettings 
    2021-04-27 10:59:50,304 [ 328304]  ERROR - ij.psi.impl.source.PsiFileImpl - readOrBuilt roots = {PhpFileStubImpl Language: PHP}; , stubBindingRoot = PhpFileImpl, languages = [PHP, HTML], fileTypes = [PHP, HTML], files = [PhpFileImpl, HtmlFileImpl], roots = [(php.FILE, Language: PHP -> PhpFileImpl), (FILE, Language: HTML -> HtmlFileImpl)] 
    java.lang.Throwable: readOrBuilt roots = {PhpFileStubImpl Language: PHP}; , stubBindingRoot = PhpFileImpl, languages = [PHP, HTML], fileTypes = [PHP, HTML], files = [PhpFileImpl, HtmlFileImpl], roots = [(php.FILE, Language: PHP -> PhpFileImpl), (FILE, Language: HTML -> HtmlFileImpl)]
    	at com.intellij.openapi.diagnostic.Logger.error(Logger.java:161)
    	at com.intellij.psi.impl.source.PsiFileImpl.getStubTree(PsiFileImpl.java:648)
    	at com.intellij.psi.impl.source.PsiFileImpl.getGreenStubTree(PsiFileImpl.java:952)
    	at com.jetbrains.php.lang.psi.PhpFileImpl$2.compute(PhpFileImpl.java:81)
    	at com.intellij.psi.impl.PsiCachedValueImpl.doCompute(PsiCachedValueImpl.java:54)
    	at com.intellij.util.CachedValueBase.lambda$getValueWithLock$3(CachedValueBase.java:227)
    	at com.intellij.util.CachedValueBase.computeData(CachedValueBase.java:42)
    	at com.intellij.util.CachedValueBase.lambda$getValueWithLock$4(CachedValueBase.java:227)
    	at com.intellij.openapi.util.RecursionManager$1.computePreventingRecursion(RecursionManager.java:111)
    	at com.intellij.openapi.util.RecursionGuard.doPreventingRecursion(RecursionGuard.java:43)
    	at com.intellij.openapi.util.RecursionManager.doPreventingRecursion(RecursionManager.java:68)
    	at com.intellij.util.CachedValueBase.getValueWithLock(CachedValueBase.java:228)
    	at com.intellij.psi.impl.PsiCachedValueImpl.getValue(PsiCachedValueImpl.java:43)
    	at com.jetbrains.php.lang.psi.PhpFileImpl.getTopLevelDefs(PhpFileImpl.java:217)
    	at com.jetbrains.php.lang.psi.PhpPsiUtil.findClasses(PhpPsiUtil.java:516)
    	at com.jetbrains.php.lang.psi.PhpPsiUtil.findAllClasses(PhpPsiUtil.java:530)
    	at com.jetbrains.php.projectView.PhpFileNode.getClasses(PhpFileNode.java:35)
    	at com.jetbrains.php.projectView.PhpFileNode.isDeprecated(PhpFileNode.java:60)
    	at com.intellij.ide.projectView.impl.nodes.AbstractPsiBasedNode.lambda$doUpdate$1(AbstractPsiBasedNode.java:160)
    	at com.intellij.openapi.application.impl.ApplicationImpl.runReadAction(ApplicationImpl.java:814)
    	at com.intellij.ide.projectView.impl.nodes.AbstractPsiBasedNode.doUpdate(AbstractPsiBasedNode.java:141)
    	at com.intellij.ide.projectView.impl.nodes.AbstractPsiBasedNode.lambda$update$0(AbstractPsiBasedNode.java:137)
    	at com.intellij.util.AstLoadingFilter.lambda$toComputable$2(AstLoadingFilter.java:174)
    	at com.intellij.util.AstLoadingFilter.disallowTreeLoading(AstLoadingFilter.java:132)
    	at com.intellij.util.AstLoadingFilter.disallowTreeLoading(AstLoadingFilter.java:121)
    	at com.intellij.util.AstLoadingFilter.disallowTreeLoading(AstLoadingFilter.java:111)
    	at com.intellij.ide.projectView.impl.nodes.AbstractPsiBasedNode.update(AbstractPsiBasedNode.java:137)
    	at com.intellij.ide.util.treeView.PresentableNodeDescriptor.getUpdatedPresentation(PresentableNodeDescriptor.java:76)
    	at com.intellij.ide.util.treeView.PresentableNodeDescriptor.update(PresentableNodeDescriptor.java:29)
    	at com.intellij.ui.tree.StructureTreeModel$Node.update(StructureTreeModel.java:454)
    	at com.intellij.ui.tree.StructureTreeModel$Node.<init>(StructureTreeModel.java:435)
    	at com.intellij.ui.tree.StructureTreeModel$Node.<init>(StructureTreeModel.java:428)
    	at com.intellij.ui.tree.StructureTreeModel.getValidChildren(StructureTreeModel.java:389)
    	at com.intellij.ui.tree.StructureTreeModel.validateChildren(StructureTreeModel.java:298)
    	at com.intellij.ui.tree.StructureTreeModel$Node.isLeaf(StructureTreeModel.java:558)
    	at com.intellij.ui.tree.StructureTreeModel.isLeaf(StructureTreeModel.java:334)
    	at com.intellij.ui.tree.LeafState.get(LeafState.java:64)
    	at com.intellij.ui.tree.AsyncTreeModel$CmdGetChildren.load(AsyncTreeModel.java:574)
    	at com.intellij.ui.tree.AsyncTreeModel$CmdGetChildren.getNode(AsyncTreeModel.java:547)
    	at com.intellij.ui.tree.AsyncTreeModel$Command.get(AsyncTreeModel.java:440)
    	at com.intellij.ui.tree.AsyncTreeModel$Command.get(AsyncTreeModel.java:406)
    	at com.intellij.util.concurrency.Invoker$Task.run(Invoker.java:316)
    	at com.intellij.openapi.application.impl.ApplicationImpl.tryRunReadAction(ApplicationImpl.java:1096)
    	at com.intellij.openapi.progress.util.ProgressIndicatorUtils.lambda$runInReadActionWithWriteActionPriority$0(ProgressIndicatorUtils.java:79)
    	at com.intellij.openapi.progress.util.ProgressIndicatorUtils.runActionAndCancelBeforeWrite(ProgressIndicatorUtils.java:157)
    	at com.intellij.openapi.progress.util.ProgressIndicatorUtils.lambda$runWithWriteActionPriority$1(ProgressIndicatorUtils.java:119)
    	at com.intellij.openapi.progress.ProgressManager.lambda$runProcess$0(ProgressManager.java:57)
    	at com.intellij.openapi.progress.impl.CoreProgressManager.lambda$runProcess$2(CoreProgressManager.java:178)
    	at com.intellij.openapi.progress.impl.CoreProgressManager.registerIndicatorAndRun(CoreProgressManager.java:688)
    	at com.intellij.openapi.progress.impl.CoreProgressManager.executeProcessUnderProgress(CoreProgressManager.java:634)
    	at com.intellij.openapi.progress.impl.ProgressManagerImpl.executeProcessUnderProgress(ProgressManagerImpl.java:64)
    	at com.intellij.openapi.progress.impl.CoreProgressManager.runProcess(CoreProgressManager.java:165)
    	at com.intellij.openapi.progress.ProgressManager.runProcess(ProgressManager.java:57)
    	at com.intellij.openapi.progress.util.ProgressIndicatorUtils.runWithWriteActionPriority(ProgressIndicatorUtils.java:116)
    	at com.intellij.openapi.progress.util.ProgressIndicatorUtils.runInReadActionWithWriteActionPriority(ProgressIndicatorUtils.java:79)
    	at com.intellij.util.concurrency.Invoker.invokeSafely(Invoker.java:205)
    	at com.intellij.util.concurrency.Invoker.lambda$offerSafely$0(Invoker.java:183)
    	at com.intellij.util.concurrency.Invoker$Background.lambda$offer$0(Invoker.java:541)
    	at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
    	at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
    	at com.intellij.util.concurrency.SchedulingWrapper$MyScheduledFutureTask.run(SchedulingWrapper.java:220)
    	at com.intellij.util.concurrency.BoundedTaskExecutor.doRun(BoundedTaskExecutor.java:216)
    	at com.intellij.util.concurrency.BoundedTaskExecutor.access$200(BoundedTaskExecutor.java:27)
    	at com.intellij.util.concurrency.BoundedTaskExecutor$1.execute(BoundedTaskExecutor.java:195)
    	at com.intellij.util.ConcurrencyUtil.runUnderThreadName(ConcurrencyUtil.java:213)
    	at com.intellij.util.concurrency.BoundedTaskExecutor$1.run(BoundedTaskExecutor.java:184)
    	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
    	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
    	at java.base/java.util.concurrent.Executors$PrivilegedThreadFactory$1$1.run(Executors.java:668)
    	at java.base/java.util.concurrent.Executors$PrivilegedThreadFactory$1$1.run(Executors.java:665)
    	at java.base/java.security.AccessController.doPrivileged(Native Method)
    	at java.base/java.util.concurrent.Executors$PrivilegedThreadFactory$1.run(Executors.java:665)
    	at java.base/java.lang.Thread.run(Thread.java:834)
    

    To Reproduce Enable plugin

    Environment (please complete the following information):

    • IDE & Version: PHPStorm 2021.1.1
    • PHP Version: 7.4 / 8.0
    • OS: Windows 10
    • Laravel Tinker plugin version : 2.1.0
    • Interpreter Type: Local / Remote
    • Laravel Version: 8.26.1
    • Tinker version: 2.6.0
    bug pre-released 
    opened by emargareten 31
  • [Bug]: output gets printed twice

    [Bug]: output gets printed twice

    Short bug description

    the output always gets printed twice

    Extended bug description

    it looks like it has something to do with the latest changes to version 2.5.0

    How to reproduce?

    function test()
    {
        return 'test';
    }
    return test();
    

    Expected behavior

    see output only once

    Screenshots

    image

    IDE & Version

    phpstorm 2022.3

    PHP Version

    8.1

    OS and version

    Linux

    Laravel Tinker plugin version

    2.5.0

    Interpreter type

    {"label"=>"Docker (NOT compose)"}

    Laravel Version

    9

    Tinker version

    2.5.0

    Psysh version

    v0.11.9

    Additional Context

    No response

    bug 
    opened by michabbb 27
  • Uncaught ErrorException: touch(): Utime failed: Invalid argument

    Uncaught ErrorException: touch(): Utime failed: Invalid argument

    Hi. I get an error with the message below, every time I execute a code in Tinker console. It doesn't matter what the statement is.

    Uncaught ErrorException: touch(): Utime failed: Invalid argument in D:\www\mosharekat-laravel\vendor\psy\psysh\src\ConfigPaths.php:250
    

    I've attached full error text as a text file for you. error.txt

    Environment:

    • IDE & Version: PHPStorm 2020.2.1
    • PHP Version: 7.4.5
    • OS: Windows 10
    • Laravel Tinker plugin version : 1.2.0
    • Interpreter Type: Local
    • Laravel Version: 7.28.3
    • Tinker version: 2.4.2

    I've also tried reinstalling the plugin, but it didn't help.

    bug stale 
    opened by amirzpr 27
  • Cannot run code on php interpreter working in docker

    Cannot run code on php interpreter working in docker

    Bug description shows a progress but not output result in right window of tinker

    To Reproduce when running code via docker, it is just try up container that I set in settings of php interpretuere

    Environment (please complete the following information):

    • IDE & Version: PHPStorm 2020.2.4
    • PHP Version: 7.4
    • OS: Elementary OS 5..1.7 Hera (based on Ubuntu 18.04)
    • Laravel Tinker plugin version : [e.g. 1.1.1]
    • Interpreter TypeDocker / Docker-compose
    • Laravel Version: 8.0
    • Tinker version: 2.0
    bug 
    opened by Taalaybek 26
  • Laravel 9 Tinker Plugin Bug. adds: <whisper>= </whisper> to output.

    Laravel 9 Tinker Plugin Bug. adds: = to output.

    Bug description

    At the start of a fresh install of laravel 9 the plugin prepends any output with <whisper>= </whisper>.

    To Reproduce

    • In mysql / mariadb database shell create database test;

    • In console laravel new test migrate:fresh

    • In phpstorm open tinker plugin. enter:

    <?php
    User::factory()->create();
    
    • output
    // Laravel Tinker started at 2022-12-05 02:38:27
                                                                
    <whisper>= </whisper>App\Models\User {#3188
        name: "Dr. Carey Klocko",
        email: "[email protected]",
        email_verified_at: "2022-12-05 01:38:27",
        #password: "$2y$10$92IXUNpkjO0rOQ5byMi.Ye4oKoEa3Ro9llC/.og/at2.uheWG/igi",
        #remember_token: "YluhFBHZYU",
        updated_at: "2022-12-05 01:38:27",
        created_at: "2022-12-05 01:38:27",
        id: 3,
      }
    
    
    *** Execution finished ***
                                    
                                
                            
    

    Expected behavior

    • expected output
    // Laravel Tinker started at 2022-12-05 02:38:27
                                                                
    App\Models\User {#3188
        name: "Dr. Carey Klocko",
        email: "[email protected]",
        email_verified_at: "2022-12-05 01:38:27",
        #password: "$2y$10$92IXUNpkjO0rOQ5byMi.Ye4oKoEa3Ro9llC/.og/at2.uheWG/igi",
        #remember_token: "YluhFBHZYU",
        updated_at: "2022-12-05 01:38:27",
        created_at: "2022-12-05 01:38:27",
        id: 3,
      }
    
    
    *** Execution finished ***
                                    
                                
                            
    

    Screenshots

    image

    Environment

    • IDE & Version: 2022.2.4
    • PHP Version: 8.1.9
    • OS: Windows 10
    • Laravel Tinker plugin version : 2.4.0
    • Interpreter Type: Local
    • Laravel Version: 9.42.2
    • Tinker version: 2.7.3
    bug 
    opened by SanderCokart 24
  • Add app termination

    Add app termination

    Is your feature request related to a problem? Please describe. Some events only dispatch after app terminated / object destruction

    Describe the solution you'd like Add a simple $app->terminate() (or $kernal->terminate($input???, $status???)) in tinker_run.php after execution.

    feature request 
    opened by emargareten 18
  • Plugin not working on windows with psy/psysh >= v0.11.3 (file_exists(): Unable to find the wrapper

    Plugin not working on windows with psy/psysh >= v0.11.3 (file_exists(): Unable to find the wrapper "hoa")

    Bug description

    Uncaught Psy\Readline\Hoa\ConsoleTput::parse(): (0) Terminfo file  does not exist.
    

    Environment (please complete the following information):

    • IDE & Version: PHPStorm 2020.2.4
    • PHP Version: 8.1
    • OS: Windows 10
    • Laravel Tinker plugin version : 2.3.3
    • Interpreter Type: Local
    • Laravel Version: v9.15.0
    • Tinker version: v2.7.2
    temporary workaround available external bug 
    opened by abrampl 11
  • Add support for custom

    Add support for custom "Run Tinker with using custom command"

    This request is related to this bug report.

    Background

    Recently, my team split our app into a few Docker containers. Prior to this, I was using PHPStorm Laravel Tinker extensively with an interpreter installed globally on my machine.

    Now that we've moved to Docker, I'd like to also change my PHP interpreter to use our Docker's binary instead of my local machine's (for consistency). I've been able to set my interpreter to Docker, but when I run Laravel Tinker I don't see anything in the output panel.

    An example

    image

    Interpreter Settings

    image

    Requested Feature

    Per Roboroad's comment, I would find it very helpful to be able to set Laravel Tinker to run with a custom command (e.g. A setting to tell Laravel Tinker to run its commands via ./vendor/bin/sail php artisan tinker)

    The ultimate goal of this feature request is to get an output in the output panel when using a PHP interpreter inside a Docker container.

    Possible Alternatives

    I will update this section if I come up with any alternative ideas.

    • Nothing to see here yet
    feature request stale 
    opened by rshaw5 11
  • Cannot debug with XDebug?

    Cannot debug with XDebug?

    Bug description I`m using XDebug but i cant debug using tinker plugin. Anyone?

    Environment:

    • IDE & Version: PHPStorm 2020.3.1
    • PHP Version: 7.4
    • OS: Windows 10
    • Laravel Tinker plugin version : 1.3.1
    • Interpreter Type: Local
    • Laravel Version: 8.20
    • Tinker version: 2.5.0
    bug help wanted stale 
    opened by leandrodiogenes 11
  • Ability to increase font size in the output screen, or, make it similar to IDE output

    Ability to increase font size in the output screen, or, make it similar to IDE output

    Current Output image

    Describe the solution you'd like Making the output similar to what is printed by the IDE. image

    Describe alternatives you've considered

    • Increasing the font-size in the output
    feature request stale 
    opened by qwertynik 11
  • Object of class Illuminate\Foundation\Application could not be converted to string

    Object of class Illuminate\Foundation\Application could not be converted to string

    Bug description When running, in yet unknown conditions, an error occurs. PHP Fatal Error: Uncaught Error: Object of class Illuminate\Foundation\Application could not be converted to string in Command line code:6

    To Reproduce Run a tinker console window

    Expected behavior The error should not have appeared and output following my code in

    Screenshots None

    Environment (please complete the following information):

    • IDE & Version: PHPStorm 2020.2.1
    • PHP Version: 7.4
    • Interpreter Type: Docker
    • Laravel Version: 7.3.0
    • Tinker version: 2.3.0

    Additional context It seems to work with docker run, but not with docker exec in one of my projects.

    external bug 
    opened by Roboroads 11
  • chore(deps): bump gson from 2.10 to 2.10.1

    chore(deps): bump gson from 2.10 to 2.10.1

    Bumps gson from 2.10 to 2.10.1.

    Release notes

    Sourced from gson's releases.

    Gson 2.10.1

    This is technically a minor release rather than a patch release because there is one small API change: a new JsonObject.isEmpty() method.

    What's Changed: User-Visible Changes

    Site Documentation and Maintenance Changes (these were already visible)

    Other Changes

    New Contributors (thanks!)

    Full Changelog: https://github.com/google/gson/compare/gson-parent-2.10...gson-parent-2.10.1

    Changelog

    Sourced from gson's changelog.

    Change Log

    The change log for versions newer than 2.10 is available only on the GitHub Releases page.

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies java 
    opened by dependabot[bot] 0
  • chore(deps): bump actions/checkout from 3.1.0 to 3.3.0

    chore(deps): bump actions/checkout from 3.1.0 to 3.3.0

    Bumps actions/checkout from 3.1.0 to 3.3.0.

    Release notes

    Sourced from actions/checkout's releases.

    v3.3.0

    What's Changed

    New Contributors

    Full Changelog: https://github.com/actions/checkout/compare/v3.2.0...v3.3.0

    v3.2.0

    What's Changed

    New Contributors

    Full Changelog: https://github.com/actions/checkout/compare/v3.1.0...v3.2.0

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies github_actions 
    opened by dependabot[bot] 0
  • chore(deps): bump org.jetbrains.kotlin.jvm from 1.7.22 to 1.8.0

    chore(deps): bump org.jetbrains.kotlin.jvm from 1.7.22 to 1.8.0

    Bumps org.jetbrains.kotlin.jvm from 1.7.22 to 1.8.0.

    Release notes

    Sourced from org.jetbrains.kotlin.jvm's releases.

    Kotlin 1.8.0

    Changelog

    Analysis API

    • KT-50255 Analysis API: Implement standalone mode for the Analysis API

    Analysis API. FIR

    • KT-54292 Symbol Light classes: implement PsiVariable.computeConstantValue for light field
    • KT-54293 Analysis API: fix constructor symbol creation when its accessed via type alias

    Android

    • KT-53342 TCS: New AndroidSourceSet layout for multiplatform
    • KT-53013 Increase AGP compile version in KGP to 4.1.3
    • KT-54013 Report error when using deprecated Kotlin Android Extensions compiler plugin
    • KT-53709 MPP, Android SSL2: Conflicting warnings for androidTest/kotlin source set folder

    Backend. Native. Debug

    • KT-53561 Invalid LLVM module: "inlinable function call in a function with debug info must have a !dbg location"

    Compiler

    New Features

    • KT-52817 Add @JvmSerializableLambda annotation to keep old behavior of non-invokedynamic lambdas
    • KT-54460 Implementation of non-local break and continue
    • KT-53916 Support Xcode 14 and new Objective-C frameworks in Kotlin/Native compiler
    • KT-32208 Generate method annotations into bytecode for suspend lambdas (on invokeSuspend)
    • KT-53438 Introduce a way to get SourceDebugExtension attribute value via JVMTI for profiler and coverage

    Performance Improvements

    • KT-53347 Get rid of excess allocations in parser
    • KT-53689 JVM: Optimize equality on class literals
    • KT-53119 Improve String Concatenation Lowering

    Fixes

    • KT-53465 Unnecessary checkcast to array of reified type is not optimized since Kotlin 1.6.20
    • KT-49658 NI: False negative TYPE_MISMATCH on nullable type with when
    • KT-48162 NON_VARARG_SPREAD isn't reported on *toTypedArray() call
    • KT-43493 NI: False negative: no compilation error "Operator '==' cannot be applied to 'Long' and 'Int'" is reported in builder inference lambdas
    • KT-54393 Change in behavior from 1.7.10 to 1.7.20 for java field override.
    • KT-55357 IllegalStateException when reading a class that delegates to a Java class with a definitely-not-null type with a flexible upper bound
    • KT-55068 Kotlin Gradle DSL: No mapping for symbol: VALUE_PARAMETER SCRIPT_IMPLICIT_RECEIVER on JVM IR backend
    • KT-51284 SAM conversion doesn't work if method has context receivers
    • KT-48532 Remove old JVM backend

    ... (truncated)

    Changelog

    Sourced from org.jetbrains.kotlin.jvm's changelog.

    1.8.0

    Analysis API

    • KT-50255 Analysis API: Implement standalone mode for the Analysis API

    Analysis API. FIR

    • KT-54292 Symbol Light classes: implement PsiVariable.computeConstantValue for light field
    • KT-54293 Analysis API: fix constructor symbol creation when its accessed via type alias

    Android

    • KT-53342 TCS: New AndroidSourceSet layout for multiplatform
    • KT-53013 Increase AGP compile version in KGP to 4.1.3
    • KT-54013 Report error when using deprecated Kotlin Android Extensions compiler plugin
    • KT-53709 MPP, Android SSL2: Conflicting warnings for androidTest/kotlin source set folder

    Backend. Native. Debug

    • KT-53561 Invalid LLVM module: "inlinable function call in a function with debug info must have a !dbg location"

    Compiler

    New Features

    • KT-52817 Add @JvmSerializableLambda annotation to keep old behavior of non-invokedynamic lambdas
    • KT-54460 Implementation of non-local break and continue
    • KT-53916 Support Xcode 14 and new Objective-C frameworks in Kotlin/Native compiler
    • KT-32208 Generate method annotations into bytecode for suspend lambdas (on invokeSuspend)
    • KT-53438 Introduce a way to get SourceDebugExtension attribute value via JVMTI for profiler and coverage

    Performance Improvements

    • KT-53347 Get rid of excess allocations in parser
    • KT-53689 JVM: Optimize equality on class literals
    • KT-53119 Improve String Concatenation Lowering

    Fixes

    • KT-53465 Unnecessary checkcast to array of reified type is not optimized since Kotlin 1.6.20
    • KT-49658 NI: False negative TYPE_MISMATCH on nullable type with when
    • KT-48162 NON_VARARG_SPREAD isn't reported on *toTypedArray() call
    • KT-43493 NI: False negative: no compilation error "Operator '==' cannot be applied to 'Long' and 'Int'" is reported in builder inference lambdas
    • KT-54393 Change in behavior from 1.7.10 to 1.7.20 for java field override.
    • KT-55357 IllegalStateException when reading a class that delegates to a Java class with a definitely-not-null type with a flexible upper bound
    • KT-55068 Kotlin Gradle DSL: No mapping for symbol: VALUE_PARAMETER SCRIPT_IMPLICIT_RECEIVER on JVM IR backend
    • KT-51284 SAM conversion doesn't work if method has context receivers
    • KT-48532 Remove old JVM backend
    • KT-55065 Kotlin Gradle DSL: Reflection cannot find class data for lambda, produced by JVM IR backend

    ... (truncated)

    Commits
    • da1a843 Add ChangeLog for 1.8.0-RC2
    • d325cf8 Call additional publishToMavenLocal in maven build scripts and enable info
    • 0403d70 Don't leave Gradle daemons after build scripts
    • 52b225d Fix task module-name is not propagated to compiler arguments
    • d40ebc3 Specify versions-maven-plugin version explicitly
    • 2e829ed Fix version parsing crash on Gradle rich version string
    • f603c0e Scripting, IR: fix capturing of implicit receiver
    • 06cbf8f Scripting, tests: enable custom script tests with IR
    • d61cef0 Fix deserialization exception for DNN types from Java
    • ea33e72 JVM IR: script is a valid container for local delegated properties
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies java 
    opened by dependabot[bot] 0
  • [Bug]: No Output / Output vanishes with Version 2.5.1

    [Bug]: No Output / Output vanishes with Version 2.5.1

    Short bug description

    Since update to version 2.5.1 my console doesn’t shows any output

    Extended bug description

    After updating, my console shows output for a fraction of a second and after that the only output shown is:

    // Laravel Tinker started at 2022-12-22 10:43:35
    *** Execution finished ***
    

    I use PhpStorm Version 2022.3 and have the new UI (beta) enabled.

    For now i use Version 2.4.0 per manual install which works for me.

    How to reproduce?

    1. Open Tinker Console and dd something

    Expected behavior

    Output shown in result window

    Screenshots

    image

    IDE & Version

    PhpStorm 2022.3

    PHP Version

    7.4

    OS and version

    Windows 11

    Laravel Tinker plugin version

    2.5.1

    Interpreter type

    {"label"=>"Local"}

    Laravel Version

    v6.20.44

    Tinker version

    v1.0.10

    Psysh version

    v0.9.12

    Additional Context

    No response

    bug 
    opened by marclangesauels 4
  • [Feature]:  optional: count microseconds and memory usage for every run

    [Feature]: optional: count microseconds and memory usage for every run

    Related problem

    when testing different solutions it would be nice to debug how long something takes to execute. for example: if you want to test different eloquent queries, it would be nice to compare them.

    My ideal solution

    so it would be nice if tinker would add

    $time_start = microtime(true);

    in front of the code, and

    $time_end = microtime(true);`
    $execution_time = ($time_end - $time_start)/60;
    echo '<b>Total Execution Time:</b> '.$execution_time.' Mins';
    

    at the end of the code.

    Concidered alternatives

    No response

    Additional context

    if that could be turned on/off via the phpstorm tinker config, that would be nice 😏

    Intentions

    • [ ] I'm open to build this myself and PR it
    feature request 
    opened by michabbb 0
  • chore(deps): bump org.jetbrains.intellij from 1.10.1 to 1.11.0

    chore(deps): bump org.jetbrains.intellij from 1.10.1 to 1.11.0

    Bumps org.jetbrains.intellij from 1.10.1 to 1.11.0.

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies java 
    opened by dependabot[bot] 0
Releases(v2.5.1)
Owner
Robbin "Roboroads" Schepers
Robbin
This Laravel Nova tool lets you run artisan and bash commands directly from Nova 4 or higher.

Laravel Nova tool for running Artisan & Shell commands. This Nova tool lets you run artisan and bash commands directly from nova. This is an extended

Artem Stepanenko 17 Dec 15, 2022
Composer package which adds support for HTML5 elements using Laravels Form interface (e.g. Form::date())

Laravel HTML 5 Inputs Composer package which adds support for HTML5 elements by extending Laravel's Form interface (e.g. Form::date()) Adds support fo

Small Dog Studios 11 Oct 13, 2020
A package to flash multiple messages using Laravels default session message flashing system

Flash multiple advanced messages with both text, messages and links An opinionated solution for flashing multiple advanced messages from the backend a

Bilfeldt 6 Jan 18, 2022
Validate your input data in a simple way, an easy way and right way. no framework required. For simple or large. project.

wepesi_validation this module will help to do your own input validation from http request POST or GET. INTEGRATION The integration is the simple thing

Boss 4 Dec 17, 2022
📝 Artisan Menu - Use Artisan via an elegant console GUI

?? Artisan Menu Use Artisan via an elegant console GUI Features Run built-in and custom Artisan commands from a console GUI Prompts to enter required

Jordan Hall 149 Dec 29, 2022
📝 Artisan Menu - Use Artisan via an elegant console GUI

?? Artisan Menu Use Artisan via an elegant console GUI Features Run built-in and custom Artisan commands from a console GUI Prompts to enter required

Jordan Hall 148 Nov 29, 2022
📦 Adds Laravel Packages Support to Lumen and Vendor Publish Artisan Command.

Laravel Package Support for Lumen: Makes Lumen compatible with Laravel Packages. You can use any Laravel Packages in Lumen by installing Larasupport Package.

Irfaq Syed 127 Dec 17, 2022
Laravel-OvalFi helps you Set up, test, and manage your OvalFi integration directly in your Laravel App.

OvalFi Laravel Package Laravel-OvalFi helps you Set up, test, and manage your OvalFi integration directly in your Laravel App. Installation You can in

Paul Adams 2 Sep 8, 2022
Collection of the Laravel/Eloquent Model classes that allows you to get data directly from a Magento 2 database.

Laragento LAravel MAgento Micro services Magento 2 has legacy code based on abandoned Zend Framework 1 with really ugly ORM on top of outdated Zend_DB

Egor Shitikov 87 Nov 26, 2022
Generate Data Transfer Objects directly from JSON objects

Json 2 DTO Spatie's Data Transfer Object library is awesome, but typing out DTOs can quickly become a chore. Inspired by Json2Typescript style tools,

null 111 Jan 3, 2023
Allows Filament static assets (css, js) to be served directly from /public

Filament Static Asset Handling This package aims to solve improve the static asset handling of the amazing Laravel package Filament. By default Filame

Jamie Holly 8 Dec 6, 2022
Fullstack komponents to write Forms, Queries and Menus in Laravel

kompo.io • Documentation • Demos • Twitter kompo/kompo kompo/kompo is a library of Fullstack Komponents to help you write forms, queries and menus in

Bass El Hachem 107 Dec 5, 2022
Decorate Your Models and Write Clean/Reusable Code with Presenters.

Laravel Presenter A clean way to present your model attributes without putting them in the wrong file. Installation You can install the package via co

Coderflex 14 Dec 19, 2022
Durable workflow engine that allows users to write long running persistent distributed workflows in PHP powered by Laravel queues

Durable workflow engine that allows users to write long running persistent distributed workflows (orchestrations) in PHP powered by Laravel queues. Inspired by Temporal and Azure Durable Functions.

null 268 Dec 27, 2022
Testbench Component is the de-facto package that has been designed to help you write tests for your Laravel package

Laravel Testing Helper for Packages Development Testbench Component is the de-facto package that has been designed to help you write tests for your La

Orchestra Platform 1.9k Dec 29, 2022
Package for Laravel that gives artisan commands to setup and edit environment files.

Setup and work with .env files in Laravel from the command line NOTE: This doesn't work with Laravel 5 since .env files were changed. This is for Lara

Matt Brunt 6 Dec 17, 2022
This package is to add a web interface for Laravel 5 and earlier Artisan.

Nice Artisan This package is to add a web interface for Laravel 5 and earlier Artisan. Installation Add Nice Artisan to your composer.json file : For

null 218 Nov 29, 2022
A nice GUI for Laravel Artisan, ready out of the box, configurable and handy for non-CLI experienced developers.

Artisan UI A nice GUI for Laravel Artisan, ready out of the box, configurable and handy for non-CLI experienced developers. Supported commands must be

Pablo Leone 1 Dec 3, 2021
Execute Laravel Artisan commands via REST APIs and HTTP requests safely.

Artisan Api There might be some times you wanted to execute an Artisan command, but you did not have access to shell or SSH. Here we brought REST API

Alireza 11 Sep 7, 2022