How to know Laravel version and where is it defined? - laravel

How to know Laravel version and where is it defined?
Is Laravel version is defined inside my application directory or somewhere in global server side directory?
UPDATE
Sorry, the main question is where the version is defined? Where does
php artisan --version
takes it's answer?
UPDATE 2
The goal is to investigate, who (of us) has changed Laravel version on our site. Could it be changed by github repository edition only? Or server write access was also required?

run php artisan --version from your console.
The version string is defined here:
https://github.com/laravel/framework/blob/master/src/Illuminate/Foundation/Application.php
/**
* The Laravel framework version.
*
* #var string
*/
const VERSION = '5.5-dev';

1) php artisan -V
2) php artisan --version
AND its define at the composer.json file
"require": {
...........
"laravel/framework": "^6.2",
...........
},

If you want to know the specific version then you need to check composer.lock file and search For
"name": "laravel/framework",
you will find your version in next line
"version": "v5.7.9",

If you want to know the user version in your code, then you can use using app() helper function
app()->version();
It is defined in this file ../src/Illuminate/Foundation/Application.php
Hope it will help :)

CASE - 1
Run this command in your project..
php artisan --version
You will get version of laravel installed in your system like this..
CASE - 2
Also you can check laravel version in the composer.json file in root directory.

Step 1:
go to: /vendor/laravel/framework/src.Illuminate/Foundation:
Step 2:
Open application.php file
Step 3:
Search for "version". The below indicates the version.

Run this command in your project folder location in cmd
php artisan --version

Yet another way is to read the composer.json file, but it can end with wildcard character *

Multiple way we can find out laravel version such as,
Using Command
php artisan --version
or
php artisan -v
From Composer.json
From Vendor Directory
/vendor/laravel/framework/src/Illuminate/Foundation/Application.php

In your Laravel deployment it would be
/vendor/laravel/framework/src/Illuminate/Foundation/Application.php
to see who changed your Laravel version look at what's defined in composer.json. If you have "laravel/framework": "5.4.*", then it will update to the latest after composer update is run. Composer.lock is the file that results from running a composer update, so really see who last one to modify the composer.json file was (hopefully you have that in version control). You can read more about it here https://getcomposer.org/doc/01-basic-usage.md

You can also check with composer:
composer show laravel/framework

If you're like me and want to show the Laravel version and app version on the footer you can create a Blade directive in AppServiceProvider. Blade directives are placed in the boot method of the AppServiceProvider and example code may like something like
Blade::directive('laravelVersion', function () {
return "<?php echo app()->version(); ?>";
});
then in the blade template, you call it like #laravelVersion and it will show the current laravel version.
If you want, you can read more about blade directive here

You can find this on Composer.json file -> root directory

You can view the result of dd(\Illuminate\Foundation\Application::VERSION)

Related

How to tell what version of laravel from laravel full files?

I have a question to ask about laravel: How to tell what version of laravel from the laravel full files?
I have a laravel files which I cannot tell what version is it.
Go to project root directory and run php artisan command. The output will start from something like:
Laravel Framework version 5.3.30
5.3.30 is the version of Laravel used in this project.
Go to Your project's root directory in command prompt and hit command like:
php artisan -V
You will get your laravel version Laravel Framework version 5.3.30 like that
If you can't or don't want to use artisan (php artisan --version), open vendor/laravel/framework/src/Illuminate/Foundation/Application.php you will find const VERSION = '...'; defined in the class.

LARAVEL: What laravel x is version 1.3.3?

I'm beginner in Laravel framework. I want to know if I'm using Laravel 5? or the number of Laravel I'm using. Thank you!
EDIT: I'm using windows platform
Two ways:
In your laravel home directory, type:
php artisan --version
Or you can check in this file:
vendor\laravel\framework\src\Illuminate\Foundation\Application.php
where you will see something like:
const VERSION = 'x.x.xx';
Taken from here.
You can see the version of your Laravel installation in composer.json. Take a look at it and search for this line:
"laravel/framework": "5.2.*",
You can also do
php artisan --version
from your terminal / dos prompt
Take a look at the Laravel release notes for more information about the Laravel versions: https://laravel.com/docs/5.2/releases
With command Prompt
php artisan --version
or
Go to composer.json
you will find "laravel/framework": "5.5.*", something like this

How can I remove a package from Laravel using PHP Composer?

What is the correct way to remove a package from Laravel using PHP Composer?
So far I've tried:
Remove declaration from file composer.json (in the "require" section)
Remove any class aliases from file app.php
Remove any references to the package from my code :-)
Run composer update
Run composer dump-autoload
None of these options are working! What am I missing?
Composer 1.x and 2.x
Running the following command will remove the package from vendor (or wherever you install packages), composer.json and composer.lock. Change vendor/package appropriately.
composer remove vendor/package
Obviously you'll need to remove references to that package within your app.
I'm currently running the following version of Composer:
Composer version 1.0-dev (7b13507dd4d3b93578af7d83fbf8be0ca686f4b5) 2014-12-11 21:52:29
Documentation
https://getcomposer.org/doc/03-cli.md#remove
Updates
26/10/2020 - Updated answer to assert command works for v1.x and v2.x of Composer
I got it working... The steps to remove a package from Laravel are:
Remove the declaration from file composer.json (in the "require" section)
**Remove Service Provider from file config/app.php (reference in the "providers" array)
Remove any class aliases from file config/app.php
Remove any references to the package from your code :-)
Run composer update vendor/package-name. This will remove the package folder from the vendor folder and will rebuild the Composer autoloading map.
Manually delete the published files (read the comment by zwacky)
It will remove the package folder from the Vendor folder.
Normally composer remove used like this is enough:
composer remove vendor/package
But if a Composer package is removed and the "config" cache is not cleaned you cannot clean it. When you try like so
php artisan config:clear
you can get an error In ProviderRepository.php line 208:
Class 'Laracasts\Flash\FlashServiceProvider' not found
This is a dead end, unless you go deleting files:
rm bootstrap/cache/config.php
And this is Laravel 5.6 I'm talking about, not some kind of very old stuff.
It happens usually on automated deployment, when you copy files of a new release on top of old cache. Even if you cleared the cache before copying. You end up with an old cache and a new composer.json file.
You can remove any package just by typing the following command in the terminal, and just remove the providers and alias you provided at the time of installing the package, if any and update the composer,
composer remove vendor/your_package_name
composer update
Before removing a package from a composer.json declaration, please remove the cache:
php artisan cache:clear
php artisan config:clear
If you forget to remove the cache and you get a "class not found error" then please reinstall the package, clear the cache and remove again.
You can do any one of the below two methods:
Running the below command (most recommended way to remove your package without updating your other packages)
$ composer remove vendor/package
Go to your composer.json file and then run command like below it will remove your package (but it will also update your other packages)
$ composer update
If you are still getting the error after you are done with all the steps in the previous answers, go to your projects, Bootstrap → Cache → config.php. Remove the provider and aliases entries from the cached array manually.
Use:
composer remove vendor/package
This is an example:
Install or add a package
composer require firebear/importexportfree
Uninstall / remove
composer remove firebear/importexportfree
Finally after removing:
php -f bin/magento setup:upgrade
php bin/magento setup:static-content:deploy –f
php bin/magento indexer:reindex
php -f bin/magento cache:clean
Running
Composer remove package/name
Php artisan optimize
e.g "Composer remove mckenziearts/laravel-notify" works for me while using Laravel 8.
To add the packages, the command is to be like:
composer require spatie/laravel-permission
To remove the packages, the command is to be like:
composer remove spatie/laravel-permission
In case the given answers still don't help you remove that, try this:
Manually delete the line in require from composer.json
Run composer update
If this doesn't work "composer remove package/name", you can still remove it manually.
Note : package/name is like spatie etc.
Go to composer.json and find the package name
Delete package name from composer.json
Find the vendor file in your Laravel project.
Delete the package file which is under vendor
run composer install on your terminal
Note : Package File mean is that package that you are looking for. For example, you want to remove Spatie. Then you need to find that with similar name in vendor file and you need to delete it manually.
Your package was removed successfully.
We have come with a great solution. This solution is practically done in Laravel 6. If you want to remove any package from your Laravel Project then you can easily remove the package by following below steps:
Step 1: You must know the package name which you want to remove. If you don't know the complete package name then you can open your project folder and go to the composer.json file and check the name in the require array:
"require": {
"php": "^7.2",
"fideloper/proxy": "^4.0",
"laravel/framework": "^6.2",
"laravel/passport": "^8.3",
"laravel/tinker": "^2.0"
},
Suppose, here I am going to remove the "fideloper/proxy" package.
Step 2: Open a command prompt with your project root folder directory
Step 3: First of all, clear all cache by the following commands. Run the commands one by one.
php artisan cache:clear
php artisan config:clear
Step 4: Now write the following command to remove the package. Here you need to change your package name instead of my example package.
composer remove fideloper/proxy
Now, wait for a few seconds while your package is removed.
On Laravel 8.*, the following steps work for me:
Run command composer remove package-name on the terminal
Remove Provider and aliases from file Config/app.php
Remove the related file from the Config folder.
Remove it from your code where you used it.
Remove the package folder from the vendor folder (manual delete)
Remove it from file composer.json and 'composer.lock' files (use Ctrl + F5 to search)
Remove it from file config/app.php and file bootstrap/cache/config.php files
Run these commands:
composer remove **your-package-name**
php artisan cache:clear
php artisan config:clear
There are quite a few steps here:
Go to file composer.json and look for the package and how it is written over there.
for example
{ "require": {
"twig/twig": "^3.0" } }
I wish to remove twig 3.0
Now open cmd and run composer remove vendor/your_package_name as composer remove twig/twig will remove the package.
As a final step, run composer update. This will surely give you a massage of nothing to install or update, but this is important in case your packages have inter-dependencies.
You have two solution.
First
Use remove of composer.
composer remove *your_package_name*
Second
Delete the line in require from composer.json and then run update
composer update
After removed, recommend to run below two command.
php artisan cache:clear
php artisan config:clear

Installing Zizaco entrust and confide

I am following the instruction of the link
https://github.com/Zizaco/entrust
I have written "zizaco/entrust": "dev-master" in require section of composer.json and then update it on command prompt by the command php composer.json update.
I have also run the command php composer.json dump-autoload.
It gets updated.
I have added the provider and alias line in app.php and in Auth.php model and table is also set as 'users'.
But when I run the command php artisan entrust:migration
It shows me the error as follows
Please help me as I need to work on it fast.
Kindly let me know what and where is the problem.
Help is appreciated.
I had a similar problem where by each time I run 'composer update' the packages I needed where not included as I expected. So as my solution, each time I want to start a project in laravel 4, I first edit my composer.json file before running 'composer install'. Since then I do not have such embarrassment again.

Laravel 4: php artisan down not defined

I've updated my Laravel installation with the following commands today (which is a few days after Laravel 4's release date):
php composer self-update
php composer update
You can have a look at my composer.json file here: http://paste.laravel.com/umX
In the Docs I've found out about the Maintenance Mode... (http://laravel.com/docs/configuration#maintenance-mode) Trying to use it returns:
[InvalidArgumentException]
Command "down" is not defined.
Command I've entered in the terminal for this exception:
php artisan down
My current version:
php artisan --version
Laravel Framework version 4.0.0
Any ideas? Did i miss something, am I still on some old version possibly?
Thanks in advance and best regards, Martin.
The fix for me was to update the 'providers' array in ./app/config/app.php. I thought I was doing a pretty good job of manually updating the L4 skeleton near the end of the beta period, but there was a minor change in that array (not sure which line) that allowed the 'down' command to finally appear in artisan.
The first thing I suggest you do is just run php artisan list to get a list of all the available commands. If the up and down commands aren't listed then you probably aren't fully updated.
If you have a bootstrap/compiled.php file try deleting it. Also make sure you pull the latest changes in from the laravel/laravel GitHub repository to update your application skeleton.
Once you've done the above you can again check for the existence of the commands by running php artisan list.
In app/start/global.php (or app/start/artisan.php), you need:
App::down(function() { return Response::make("Be right back!", 503); });
don't you?
Perhaps you could also try updating laravel via composer "composer update" in CLI.
I've just installed a clean Laravel 4 clone and tryed the maintenance mode with it.
Everything's working as supposed...
I've also compared the composer.json files + I'm pretty sure I've done nothing wrong updating to the stable release version even thought my app/start/* php-files remain unchanged.
Summary:
Composer seems to not override the php files in app/start/* which would be needed in order to get the maintenance mode working correctly. Probably there are even more files not being updated. This also makes a lot of sense, since you could have done some important customizations to your application there.
Correct me if I'm wrong... I'll start importing my package into a clean install thought. Don't want to run into more trouble due to this.
Best Regards, Martin.

Resources