diff options
author | xue <> | 2006-08-01 12:27:41 +0000 |
---|---|---|
committer | xue <> | 2006-08-01 12:27:41 +0000 |
commit | c62323a40a833d991c091f8cd99bf9a4f29bfc6c (patch) | |
tree | 9e03b4eb6cdbed4ea2ae9e105ae567977afff2a6 | |
parent | a27e42c150fbc19eb848d1d1a73d1dddd713d48f (diff) |
Changed PHP minimum requirement to 5.1.0
-rw-r--r-- | HISTORY | 1 | ||||
-rw-r--r-- | UPGRADE | 3 | ||||
-rw-r--r-- | buildscripts/phing/tasks/BuildPradoPEARPackageTask.php | 30 | ||||
-rw-r--r-- | framework/Collections/TDummyDataSource.php | 12 | ||||
-rw-r--r-- | framework/Collections/TList.php | 15 | ||||
-rw-r--r-- | framework/Collections/TMap.php | 15 | ||||
-rw-r--r-- | framework/Collections/TPagedDataSource.php | 12 | ||||
-rw-r--r-- | framework/Collections/TStack.php | 12 | ||||
-rw-r--r-- | framework/PradoBase.php | 86 | ||||
-rw-r--r-- | framework/Web/THttpRequest.php | 12 | ||||
-rw-r--r-- | framework/Web/THttpSession.php | 15 | ||||
-rw-r--r-- | framework/Web/UI/TTemplateControl.php | 2 | ||||
-rw-r--r-- | index.html | 2 | ||||
-rw-r--r-- | requirements/index.php | 7 | ||||
-rw-r--r-- | requirements/messages-bg.txt | 3 | ||||
-rw-r--r-- | requirements/messages-zh.txt | 3 | ||||
-rw-r--r-- | requirements/messages.txt | 3 | ||||
-rw-r--r-- | tests/FunctionalTests/tickets/protected/pages/Ticket220.page | 2 |
18 files changed, 115 insertions, 120 deletions
@@ -11,6 +11,7 @@ BUG: Ticket#306 - Prado::localize function may fail when localized string passed BUG: Ticket#311 - Several bugs in TDatePicker (Wei) BUG: Ticket#312 - TDatePicker's ReadOnly property bug (Wei) CHG: Ticket#206 - TBaseValidator.OnValidate is raised only when the validator is visible (Qiang) +CHG: Raised PHP version requirement to 5.1 and above (Qiang) ENH: Ticket#178 - Added TRadioButton.UniqueGroupName property (Qiang) ENH: Ticket#220 - TClientScripts method to import custom javascript files (Wei) ENH: Ticket#225 - TRadioButton::getRadioButtonsInGroup() added (Wei) @@ -16,6 +16,9 @@ for both A and B. Upgrading from v3.0.2
---------------------
+- The minimum PHP version required is raised to 5.1.0 and above.
+ If your server is installed with a lower version of PHP, you will
+ have to upgrade it in order to run PRADO applications.
- The signature of TControl::broadcastEvent() is changed from
broadcastEvent($sender,TBroadCastEventParameter $param) to
broadcastEvent($name,$sender,$param).
diff --git a/buildscripts/phing/tasks/BuildPradoPEARPackageTask.php b/buildscripts/phing/tasks/BuildPradoPEARPackageTask.php index 72ad8798..a8128d12 100644 --- a/buildscripts/phing/tasks/BuildPradoPEARPackageTask.php +++ b/buildscripts/phing/tasks/BuildPradoPEARPackageTask.php @@ -8,12 +8,12 @@ require_once 'PEAR/PackageFileManager/File.php'; /** * Task for creating a PEAR package definition file package.xml to be used with * the PEAR distribution of PRADO. - * + * * @author Knut Urdalen <knut.urdalen@gmail.com> * @package phing.tasks.ext */ class BuildPradoPEARPackageTask extends MatchingTask { - + /* Base directory for reading files. */ private $dir; @@ -24,7 +24,7 @@ class BuildPradoPEARPackageTask extends MatchingTask { private $state = 'stable'; private $notes; private $filesets = array(); - + /* Package file */ private $packageFile; @@ -43,21 +43,21 @@ class BuildPradoPEARPackageTask extends MatchingTask { * * @param PEAR_PackageFileManager2 $pkg */ - private function setOptions($pkg) { + private function setOptions($pkg) { $options['baseinstalldir'] = 'prado3'; $options['packagedirectory'] = $this->dir->getAbsolutePath(); - + if(empty($this->filesets)) { throw new BuildException("You must use a <fileset> tag to specify the files to include in the package.xml"); } - + // Use PEAR_PackageFileManager_Fileset from phing as file list generator $options['filelistgenerator'] = 'Fileset'; - + // Some Phing-specific options needed by our Fileset reader $options['phing_project'] = $this->getProject(); $options['phing_filesets'] = $this->filesets; - + if($this->packageFile !== null) { // Create one with full path $f = new PhingFile($this->packageFile->getAbsolutePath()); @@ -81,7 +81,7 @@ class BuildPradoPEARPackageTask extends MatchingTask { if($this->dir === null) { throw new BuildException("You must specify the \"dir\" attribute for PEAR package task."); } - + if($this->version === null) { throw new BuildException("You must specify the \"version\" attribute for PEAR package task."); } @@ -110,21 +110,21 @@ o Team Integration - PRADO enables separation of content and presentation. Compo $package->setReleaseVersion($this->version); $package->setAPIVersion($this->version); - + $package->setReleaseStability($this->state); $package->setAPIStability($this->state); - + $package->setNotes($this->notes); - + $package->setLicense('BSD', 'http://www.opensource.org/licenses/bsd-license.php'); - + // Add package maintainers $package->addMaintainer('lead', 'qxue', 'Qiang Xue', 'qiang.xue@gmail.com'); $package->addMaintainer('lead', 'jrags', 'Jason Ragsdale', 'jrags@jasrags.net'); $package->addMaintainer('lead', 'knut', 'Knut Urdalen', 'knut.urdalen@gmail.com'); // "core" dependencies - $package->setPhpDep('5.0.4'); + $package->setPhpDep('5.1.0'); $package->setPearinstallerDep('1.4.7'); $package->generateContents(); @@ -175,7 +175,7 @@ o Team Integration - PRADO enables separation of content and presentation. Compo public function setState($v) { $this->state = $v; } - + /** * Sets release notes field. * @param string $v diff --git a/framework/Collections/TDummyDataSource.php b/framework/Collections/TDummyDataSource.php index 46e625ab..d7fee4a9 100644 --- a/framework/Collections/TDummyDataSource.php +++ b/framework/Collections/TDummyDataSource.php @@ -26,7 +26,7 @@ * @package System.Collections
* @since 3.0
*/
-class TDummyDataSource extends TComponent implements IteratorAggregate
+class TDummyDataSource extends TComponent implements IteratorAggregate, Countable
{
private $_count;
@@ -54,6 +54,16 @@ class TDummyDataSource extends TComponent implements IteratorAggregate {
return new TDummyDataSourceIterator($this->_count);
}
+
+ /**
+ * Returns the number of (virtual) items in the data source.
+ * This method is required by Countable interface.
+ * @return integer number of (virtual) items in the data source.
+ */
+ public function count()
+ {
+ return $this->getCount();
+ }
}
/**
diff --git a/framework/Collections/TList.php b/framework/Collections/TList.php index 015781cb..1104ec47 100644 --- a/framework/Collections/TList.php +++ b/framework/Collections/TList.php @@ -25,9 +25,8 @@ * unset($list[$index]); // remove the item at $index
* if(isset($list[$index])) // if the list has an item at $index
* foreach($list as $index=>$item) // traverse each item in the list
+ * $n=count($list); // returns the number of items in the list
* </code>
- * Note, count($list) will always return 1. You should use {@link getCount()}
- * to determine the number of items in the list.
*
* To extend TList by doing additional operations with each addition or removal
* operation, override {@link insertAt()}, and {@link removeAt()}.
@@ -37,7 +36,7 @@ * @package System.Collections
* @since 3.0
*/
-class TList extends TComponent implements IteratorAggregate,ArrayAccess
+class TList extends TComponent implements IteratorAggregate,ArrayAccess,Countable
{
/**
* internal data storage
@@ -95,6 +94,16 @@ class TList extends TComponent implements IteratorAggregate,ArrayAccess }
/**
+ * Returns the number of items in the list.
+ * This method is required by Countable interface.
+ * @return integer number of items in the list.
+ */
+ public function count()
+ {
+ return $this->getCount();
+ }
+
+ /**
* @return integer the number of items in the list
*/
public function getCount()
diff --git a/framework/Collections/TMap.php b/framework/Collections/TMap.php index e3a26e5f..ef393866 100644 --- a/framework/Collections/TMap.php +++ b/framework/Collections/TMap.php @@ -24,16 +24,15 @@ * unset($map[$key]); // remove the value with the specified key
* if(isset($map[$key])) // if the map contains the key
* foreach($map as $key=>$value) // traverse the items in the map
+ * $n=count($map); // returns the number of items in the map
* </code>
- * Note, count($map) will always return 1. You should use {@link getCount()}
- * to determine the number of items in the map.
*
* @author Qiang Xue <qiang.xue@gmail.com>
* @version $Revision: $ $Date: $
* @package System.Collections
* @since 3.0
*/
-class TMap extends TComponent implements IteratorAggregate,ArrayAccess
+class TMap extends TComponent implements IteratorAggregate,ArrayAccess,Countable
{
/**
* @var array internal data storage
@@ -85,6 +84,16 @@ class TMap extends TComponent implements IteratorAggregate,ArrayAccess }
/**
+ * Returns the number of items in the map.
+ * This method is required by Countable interface.
+ * @return integer number of items in the map.
+ */
+ public function count()
+ {
+ return $this->getCount();
+ }
+
+ /**
* @return integer the number of items in the map
*/
public function getCount()
diff --git a/framework/Collections/TPagedDataSource.php b/framework/Collections/TPagedDataSource.php index 6192b1f7..a2bce9e3 100644 --- a/framework/Collections/TPagedDataSource.php +++ b/framework/Collections/TPagedDataSource.php @@ -28,7 +28,7 @@ * @package System.Collections
* @since 3.0
*/
-class TPagedDataSource extends TComponent implements IteratorAggregate
+class TPagedDataSource extends TComponent implements IteratorAggregate,Countable
{
/**
* @var mixed original data source
@@ -183,6 +183,16 @@ class TPagedDataSource extends TComponent implements IteratorAggregate }
/**
+ * Returns the number of items in the current page.
+ * This method is required by Countable interface.
+ * @return integer number of items in the current page.
+ */
+ public function count()
+ {
+ return $this->getCount();
+ }
+
+ /**
* @return integer number of pages
*/
public function getPageCount()
diff --git a/framework/Collections/TStack.php b/framework/Collections/TStack.php index 79d17902..f1118d90 100644 --- a/framework/Collections/TStack.php +++ b/framework/Collections/TStack.php @@ -31,7 +31,7 @@ * @package System.Collections
* @since 3.0
*/
-class TStack extends TComponent implements IteratorAggregate
+class TStack extends TComponent implements IteratorAggregate,Countable
{
/**
* internal data storage
@@ -160,6 +160,16 @@ class TStack extends TComponent implements IteratorAggregate {
return $this->_c;
}
+
+ /**
+ * Returns the number of items in the stack.
+ * This method is required by Countable interface.
+ * @return integer number of items in the stack.
+ */
+ public function count()
+ {
+ return $this->getCount();
+ }
}
/**
diff --git a/framework/PradoBase.php b/framework/PradoBase.php index efac53ac..6ce6ad0d 100644 --- a/framework/PradoBase.php +++ b/framework/PradoBase.php @@ -563,86 +563,16 @@ class PradoBase }
/**
- * The following code is meant to fill the gaps between different PHP versions.
+ * TReflectionClass class.
+ * This class was originally written to cope with the incompatibility between different PHP versions.
+ * It is equivalent to ReflectionClass for PHP version >= 5.1.0
+ * @author Qiang Xue <qiang.xue@gmail.com>
+ * @version $Revision: $ $Date: $
+ * @package System
+ * @since 3.0
*/
-if(version_compare(phpversion(),'5.1.0','>='))
+class TReflectionClass extends ReflectionClass
{
- /**
- * TReflectionClass class.
- * This class is written to cope with the incompatibility between different PHP versions.
- * It is equivalent to ReflectionClass if PHP version >= 5.1.0
- * @author Qiang Xue <qiang.xue@gmail.com>
- * @version $Revision: $ $Date: $
- * @package System
- * @since 3.0
- */
- class TReflectionClass extends ReflectionClass
- {
- }
-}
-else // PHP < 5.1.0
-{
- /**
- * TReflectionClass class.
- * This class is written to cope with the incompatibility between different PHP versions.
- * It mainly provides a way to detect if a method exists for a given class name.
- *
- * @author Qiang Xue <qiang.xue@gmail.com>
- * @version $Revision: $ $Date: $
- * @package System
- * @since 3.0
- */
- class TReflectionClass extends ReflectionClass
- {
- /**
- * @param string method name
- * @return boolean whether the method exists
- */
- public function hasMethod($method)
- {
- try
- {
- return $this->getMethod($method)!==null;
- }
- catch(Exception $e)
- {
- return false;
- }
- }
-
- /**
- * @param string property name
- * @return boolean whether the property exists
- */
- public function hasProperty($property)
- {
- try
- {
- return $this->getProperty($property)!==null;
- }
- catch(Exception $e)
- {
- return false;
- }
- }
- }
-
- if(!function_exists('property_exists'))
- {
- /**
- * Detects whether an object contains the specified member variable.
- * @param object
- * @param string member variable (property) name
- * @return boolean
- */
- function property_exists($object, $property)
- {
- if(is_object($object))
- return array_key_exists($property, get_object_vars($object));
- else
- return false;
- }
- }
}
?>
\ No newline at end of file diff --git a/framework/Web/THttpRequest.php b/framework/Web/THttpRequest.php index d251f6ab..130dc3cf 100644 --- a/framework/Web/THttpRequest.php +++ b/framework/Web/THttpRequest.php @@ -57,7 +57,7 @@ * @package System.Web
* @since 3.0
*/
-class THttpRequest extends TApplicationComponent implements IteratorAggregate,ArrayAccess,IModule
+class THttpRequest extends TApplicationComponent implements IteratorAggregate,ArrayAccess,Countable,IModule
{
/**
* Separator used to separate GET variable name and value when URL format is Path.
@@ -661,6 +661,16 @@ class THttpRequest extends TApplicationComponent implements IteratorAggregate,Ar }
/**
+ * Returns the number of items in the request.
+ * This method is required by Countable interface.
+ * @return integer number of items in the request.
+ */
+ public function count()
+ {
+ return $this->getCount();
+ }
+
+ /**
* @return array the key list
*/
public function getKeys()
diff --git a/framework/Web/THttpSession.php b/framework/Web/THttpSession.php index 4439cf57..19473cda 100644 --- a/framework/Web/THttpSession.php +++ b/framework/Web/THttpSession.php @@ -61,7 +61,7 @@ * @package System.Web
* @since 3.0
*/
-class THttpSession extends TApplicationComponent implements IteratorAggregate,ArrayAccess,IModule
+class THttpSession extends TApplicationComponent implements IteratorAggregate,ArrayAccess,Countable,IModule
{
/**
* @var boolean whether this module has been initialized
@@ -139,7 +139,8 @@ class THttpSession extends TApplicationComponent implements IteratorAggregate,Ar session_set_save_handler(array($this,'_open'),array($this,'_close'),array($this,'_read'),array($this,'_write'),array($this,'_destroy'),array($this,'_gc'));
if($this->_cookie!==null)
session_set_cookie_params($this->_cookie->getExpire(),$this->_cookie->getPath(),$this->_cookie->getDomain(),$this->_cookie->getSecure());
- session_start();
+ if(ini_get('session.auto_start')!=='1')
+ session_start();
$this->_started=true;
}
}
@@ -487,6 +488,16 @@ class THttpSession extends TApplicationComponent implements IteratorAggregate,Ar }
/**
+ * Returns the number of items in the session.
+ * This method is required by Countable interface.
+ * @return integer number of items in the session.
+ */
+ public function count()
+ {
+ return $this->getCount();
+ }
+
+ /**
* @return array the list of session variable names
*/
public function getKeys()
diff --git a/framework/Web/UI/TTemplateControl.php b/framework/Web/UI/TTemplateControl.php index c7364d4b..3bbe52c5 100644 --- a/framework/Web/UI/TTemplateControl.php +++ b/framework/Web/UI/TTemplateControl.php @@ -129,7 +129,7 @@ class TTemplateControl extends TCompositeControl */
public function createChildControls()
{
- if($tpl=$this->getTemplate(true))
+ if($tpl=$this->getTemplate())
{
foreach($tpl->getDirective() as $name=>$value)
{
@@ -28,7 +28,7 @@ All Rights Reserved. <h2>Requirements</h2>
<p>
-The sole requirement for PRADO is PHP 5.0.4 or higher.
+The sole requirement for PRADO is PHP 5.1.0 or higher.
Please run <a href="requirements/index.php">requirement checker</a> to obtain
more detailed requirement information.
</p>
diff --git a/requirements/index.php b/requirements/index.php index 38f9bc07..14a0f35b 100644 --- a/requirements/index.php +++ b/requirements/index.php @@ -32,13 +32,8 @@ $requirements = array(
array(
true,
- version_compare(PHP_VERSION,"5.0.4",">="),
- 'PHP version check',
- 'PHP 5.0.4 or higher required'),
- array(
- false,
version_compare(PHP_VERSION,"5.1.0",">="),
- 'PHP version check','PHP 5.1.0 or higher preferred'),
+ 'PHP version check','PHP 5.1.0 or higher required'),
array(
true,
isset($_SERVER["HTTP_ACCEPT"]),
diff --git a/requirements/messages-bg.txt b/requirements/messages-bg.txt index ea54f02c..e1be6b5d 100644 --- a/requirements/messages-bg.txt +++ b/requirements/messages-bg.txt @@ -2,8 +2,7 @@ passed with warnings = Конфигурацията на вашия сървър удовлетворява минималните изисквания на PRADO. Моля, обърнете внимание на предупрежденията по-долу.
failed = За съжаление, вашият сървър не удовлетворява изискванията на PRADO.
PHP version check = Проверка за версията на PHP
-PHP 5.0.4 or higher required = Изисква се PHP 5.0.4 или по-висока версия.
-PHP 5.1.0 or higher preferred = Препоръчва се PHP 5.1.0 или по-висока версия. Това ще предотврати грешката предизвикана от рекурсивните __get/__set извиквания.
+PHP 5.1.0 or higher required = Изисква се PHP 5.1.0 или по-висока версия.
SQLite extension check = Проверка за SQLite
SQLite extension optional = SQLite разширението е незадължително. Ако не е заредено, няма да можете да ползвате TSqliteCache.
Memcache extension check = Проверка за Memcache
diff --git a/requirements/messages-zh.txt b/requirements/messages-zh.txt index a64caebe..806d685a 100644 --- a/requirements/messages-zh.txt +++ b/requirements/messages-zh.txt @@ -2,8 +2,7 @@ passed with warnings = 您的服务器配置符合PRADO的最低要求。请关注以下的警告信息。
failed = 对不起,您的服务器配置不符合PRADO的要求。
PHP version check = PHP版本检查
-PHP 5.0.4 or higher required = PRADO需要PHP 5.0.4或更高版本。
-PHP 5.1.0 or higher preferred = PRADO推荐使用PHP 5.1.0或更高版本。它将避免由于递归调用__get/__call引起的错误。
+PHP 5.1.0 or higher required = PRADO需要PHP 5.1.0或更高版本。
SQLite extension check = SQLite模块检查
SQLite extension optional = SQLite模块是可选的。如果它不存在,您将无法使用TSQLiteCache。
Memcache extension check = Memcache模块检查
diff --git a/requirements/messages.txt b/requirements/messages.txt index 83c50dbb..c8761373 100644 --- a/requirements/messages.txt +++ b/requirements/messages.txt @@ -2,8 +2,7 @@ all passed = Congratulations! Your server configuration satisfies all requ passed with warnings = Your server configuration satisfies minimum requirements by PRADO. Please pay attention to the warnings listed below.
failed = Sorry, your server configuration does not satisfy the requirements by PRADO.
PHP version check = PHP version check
-PHP 5.0.4 or higher required = PHP version 5.0.4 or higher is required by PRADO.
-PHP 5.1.0 or higher preferred = PHP version 5.1.0 or higher is preferred by PRADO. It eliminates the error caused by recursive __get/__set calls.
+PHP 5.1.0 or higher required = PHP version 5.1.0 or higher is required by PRADO.
SQLite extension check = SQLite extension check
SQLite extension optional = SQLite extension is optional. If it is absent, you will not be able to use TSqliteCache.
Memcache extension check = Memcache extension check
diff --git a/tests/FunctionalTests/tickets/protected/pages/Ticket220.page b/tests/FunctionalTests/tickets/protected/pages/Ticket220.page index d5b6e182..e4c8fa95 100644 --- a/tests/FunctionalTests/tickets/protected/pages/Ticket220.page +++ b/tests/FunctionalTests/tickets/protected/pages/Ticket220.page @@ -16,7 +16,7 @@ <com:TLabel ID="label1" Text="Label 1" /> <input type="button" id="button1" value="update" /> - <com:TClientScript UsingPradoScripts="prado"> + <com:TClientScript PradoScripts="prado"> Event.observe("button1", "click", function() { element = $("<%= $this->label1->ClientID %>"); |