是否有可能知道用于生成项目的 CakePHP 版本,只有应用程序代码可用?
我的问题:
我下载了一个用CakePHP 制作的项目,我真的不知道该使用哪个Cake 版本。文件说,例如@version $Revision: 8004 $
,但在某些文件中是不同的。我应该假设最高版本(8004)是正确的吗?
它似乎是从 2008 年左右开始的,所以我猜它是 1.x 版本。
PD:这是项目的代码。
我发现从 CakePHP 2.3.0 开始的版本保存在根 Cake lib 下的静态文件中。
bash #: cat $CAKE_ROOT/lib/Cake/VERSION.txt
////////////////////////////////////////////////////////////////////////////////////////////////////
// +--------------------------------------------------------------------------------------------+ //
// CakePHP Version
//
// Holds a static string representing the current version of CakePHP
//
// CakePHP(tm) : Rapid Development Framework (http://cakephp.org)
// Copyright 2005-2012, Cake Software Foundation, Inc. (http://cakefoundation.org)
//
// Licensed under The MIT License
// Redistributions of files must retain the above copyright notice.
//
// @copyright Copyright 2005-2012, Cake Software Foundation, Inc. (http://cakefoundation.org)
// @link http://cakephp.org
// @package cake.libs
// @since CakePHP(tm) v 0.2.9
// @license MIT License (http://www.opensource.org/licenses/mit-license.php)
// +--------------------------------------------------------------------------------------------+ //
////////////////////////////////////////////////////////////////////////////////////////////////////
2.3.0
编辑 core.php,添加到顶部:
echo Configure::version();
对于 cakephp 3.x 找到 \vendor\cakephp\cakephp\VERSION.txt
////////////////////////////////////////////////////////////////////////////////////////////////////
// +--------------------------------------------------------------------------------------------+ //
// CakePHP Version
//
// Holds a static string representing the current version of CakePHP
//
// CakePHP(tm) : Rapid Development Framework (http://cakephp.org)
// Copyright (c) Cake Software Foundation, Inc. (http://cakefoundation.org)
//
// Licensed under The MIT License
// Redistributions of files must retain the above copyright notice.
//
// @copyright Copyright (c) Cake Software Foundation, Inc. (http://cakefoundation.org)
// @link http://cakephp.org
// @since CakePHP(tm) v 0.2.9
// @license http://www.opensource.org/licenses/mit-license.php MIT License
// +--------------------------------------------------------------------------------------------+ //
////////////////////////////////////////////////////////////////////////////////////////////////////
3.3.2
简单的方法:只需搜索VERSION.txt文件。打开它以检查版本。
version.txt 的路径
对于cakephp 1.*:cake/VERSION.txt
对于cakephp 2.*:lib/Cake/VERSION.txt
对于cakephp 3. & 4.* :vendor/cakephp/cakephp/VERSION.txt
我确定这是针对 CakePHP 1.2.x 分支,而不是 CakePHP 1.3.x 分支。
您可以从这里下载 1.2.x 分支。
我认为它是 1.2 的原因是所有注释标题都是Copyright 2005-2008
,并且只有 1.2.x 分支使用该日期范围。1.3.x 分支中的所有内容都是Copyright 2005-2010
或更新的。
我们可以通过以下路径检查
路径=root/lib/cake/VERSION.txt
打开版本.txt
最后一行显示 cakephp 的版本
在 Cake 3x 中,在您的项目目录中,键入bin\cake version
(windows) 或bin/cake version
(osx/linux)。
Wellcome页面上写了版本,我们不需要任何命令来检查版本。如果仍然是问题,您不知何故找不到惠康页面。您可以使用
echo Configure::version();
这似乎是不可能的(无需经历所有版本更改、检查文件/文件夹结构、注释等)。
而且,这是有充分理由的 IMO。
当我启动一个应用程序时,我会在最新版本中构建它。但是,即使在它公开的时候,我通常都在使用 CakePHP 的新版本,并且会在它们发布时继续更新它。我的 APP 文件根本没有改变(除了每个发行说明要求的更改 - 如果有的话)。只有 cakephp/lib 目录改变(不幸的是,你没有那个)。
如果您很幸运,并且之前的开发人员将他们的 Cake 版本保存在单独的文件夹中而不是覆盖,那么您可能会在您webroot/index.php
的CAKE_CORE_INCLUDE_PATH
行中找到版本号,但在您的情况下,它不存在。
如果您确实有实际的 Cake 文件(我知道您没有,但其他人可能有),那么您可以在cake/VERSION.txt
文件中查找您正在使用的版本。
同样对于 Linux 控制台,您可以像这样检查您的 CakePHP 版本。
将 example.com 更改为您的域名。
# grep ^[^\/] /var/www/vhosts/example.com/httpdocs/lib/Cake/VERSION.txt
在应用根目录的 cake 3.0 中>>> cat vendor/cakephp/cakephp/VERSION.txt
composer
任何使用在composer.json
文件中包含版本详细信息的PHP 框架
例子
{
"name": "cakephp/app",
"description": "CakePHP skeleton app",
"homepage": "http://cakephp.org",
"type": "project",
"license": "MIT",
"require": {
"php": ">=5.4.16",
"cakephp/cakephp": "3.6.11",//<<< Cakephp Version
"mobiledetect/mobiledetectlib": "2.8.33",
"cakephp/migrations": "1.8.1",
"cakephp/plugin-installer": "*",
"donatj/simplecalendar": "^0.6.1",
"davidyell/proffer": "0.6.3"
},
对于 Cakephp3,打开命令行并转到您的 Project App 目录并输入bin/cake
,它会显示如下内容 *
欢迎使用 CakePHP v3.3.5 控制台
这是您当前的cakephp 版本。