Commit 311073b8 authored by meus's avatar meus

commiting modified Coverage file, and new coverage tests part 1

parent a217a6ed
...@@ -143,11 +143,12 @@ class DoctrineTest_Coverage ...@@ -143,11 +143,12 @@ class DoctrineTest_Coverage
$it = new RecursiveDirectoryIterator(Doctrine::getPath()); $it = new RecursiveDirectoryIterator(Doctrine::getPath());
$notCoveredArray = array(); $notCoveredArray = array();
foreach (new RecursiveIteratorIterator($it) as $file){ foreach (new RecursiveIteratorIterator($it) as $file){
if (strpos($file->getPathname(), ".svn")){
if(strpos($file->getPathname(), "config.php")){
continue; continue;
} }
if(strpos($file->getPathname(), "cli.php")){ if (strpos($file->getPathname(), ".svn")){
continue; continue;
} }
...@@ -177,6 +178,7 @@ class DoctrineTest_Coverage ...@@ -177,6 +178,7 @@ class DoctrineTest_Coverage
$this->result["data"] = $coverageInfo; $this->result["data"] = $coverageInfo;
file_put_contents($this->getCoverageDir() . "coverage.txt", serialize($this->result)); file_put_contents($this->getCoverageDir() . "coverage.txt", serialize($this->result));
return true;
} }
......
<?php
/**
* Doctrine
* the base class of Doctrine framework
*
* @package Doctrine
* @author Bjarte S. Karlsen <bjartka@pvv.ntnu.no>
* @license http://www.opensource.org/licenses/lgpl-license.php LGPL
* @category Object Relational Mapping
* @link www.phpdoctrine.com
* @since 1.0
* @version $Revision: 1976 $
*/
class Doctrine_TestCoverage
{
const COVERED = 1;
const MAYBE = -2;
const NOTCOVERED = -1;
private $path;
private $coverage;
private $key;
private $covered;
private $totallines = 0;
private $totalcovered = 0;
private $totalmaybe = 0;
private $totalnotcovered = 0;
/*
* Create a new coverage report
*
* @param string $file The name of the file where coverage data is stored
*
*/
public function __construct()
$result = unserialize(file_get_contents(__FILE__ . "/coverage.txt"));
$this->path = $result["path"];
$this->coverage = $result["coverage"];
$this->sortBy ="percentage"; // default sort
}
/*
* Show graphical coverage report for a file
*
* @param string $fileName The name of the file to show
*/
public function showFile($fileName)
{
$key = $this->path . $fileName;
$html = '<div id="coverage">';
if ( ! isset( $this->coverage[$key]))
{
echo '<h2>This file has not been tested!</h2>';
}
$coveredLines = $this->coverage[$key];
$fileArray = file(Doctrine::getPath() . "/".$fileName);
$html .= '<table>' . "\n";
foreach ($fileArray as $num => $line){
$linenum = $num+1;
$html .= '<tr><td>' . $linenum . '</td>' . "\n";
$class ="normal";
if (isset($coveredLines[$linenum]) && $coveredLines[$linenum] == 1){
$class = "covered";
} else if (isset($coveredLines[$linenum]) && $coveredLines[$linenum] == -1) {
$class ="red";
} else if (isset($coveredLines[$linenum]) && $coveredLines[$linenum] == -2) {
$class ="orange";
}
$line = str_replace(" ", "&nbsp;", htmlspecialchars($line));
$html .= '<td class="' . $class . '">' . $line . '</td></tr>' . "\n";
}
$html .='</table></div>';
echo $html;
}
/*
* Generate coverage data for non tested files
*
* Scans all files and records data for those that are not in the coverage
* record.
*
* @return array An array with coverage data
*/
public function generateNotCoveredFiles()
{
$it = new RecursiveDirectoryIterator(Doctrine::getPath());
$notCoveredArray = array();
foreach (new RecursiveIteratorIterator($it) as $file){
if (strpos($file->getPathname(), ".svn")){
continue;
}
$path = Doctrine::getPath() . DIRECTORY_SEPARATOR;
$coveredPath = str_replace($path, $this->path, $file->getPathname());
if (isset($this->coverage[$coveredPath])){
continue;
}
$class = str_replace($path, "", $file->getPathname());
$class = str_replace(DIRECTORY_SEPARATOR, "_", $class);
$class = substr($class, 0,-4);
if (strpos($class, '_Interface')) {
continue;
}
if ( ! class_exists($class)){
continue;
}
try{
$refClass = new ReflectionClass($class);
} catch (Exception $e){
echo $e->getMessage();
continue;
}
$lines = 0;
$methodLines = 0;
foreach ($refClass->getMethods() as $refMethod){
if ($refMethod->getDeclaringClass() != $refClass){
continue;
}
$methodLines = $refMethod->getEndLine() - $refMethod->getStartLine();
$lines += $methodLines;
}
if ($methodLines == 0){
$notCoveredArray[$class] = array("covered" => 0, "maybe" => 0, "notcovered"=>$lines, "total" => $lines, "percentage" => 100);
} else {
$notCoveredArray[$class] = array("covered" => 0, "maybe" => 0, "notcovered"=>$lines, "total" => $lines, "percentage" => 0);
}
$this->totallines += $lines;
$this->totalnotcovered += $lines;
}
return $notCoveredArray;
}
/*
* Show a summary of all files in Doctrine and their coverage data
*
* @uses generateNonCoveredFiles
* @uses generateCoverage
*/
public function showSummary()
{
if (isset($_GET["order"])){
$this->sortBy = $_GET["order"];
}
$coveredArray = $this->generateCoverage();
$notcoveredArray = $this->generateNotCoveredFiles();
$coveredArray = array_merge($coveredArray, $notcoveredArray);
//lets sort it.
uasort($coveredArray, array($this,"sortArray"));
//and flip if it perhaps?
if (isset($_GET["desc"]) && $_GET["desc"] == "true"){
$coveredArray = array_reverse($coveredArray, true);
}
//ugly code to print out the result:
echo "<tr><td>" . TOTAL . "</td><td>" . round((($this->totalcovered + $this->totalmaybe) / $this->totallines) * 100, 2) . " % </td><td>$this->totallines</td><td>$this->totalcovered</td><td>$this->totalmaybe</td><td>$this->totalnotcovered</td><td></td></tr>";
foreach($coveredArray as $class => $info){
$fileName = str_replace("_", "/", $class) . ".php";
echo "<tr><td>" . $class . "</td><td>" . $info["percentage"] . " % </td><td>" . $info["total"] . "</td><td>" . $info["covered"] . "</td><td>" . $info["maybe"] . "</td><td>" . $info["notcovered"]. "</td><td><a href=\"cc.php?file=" . $fileName . "\">coverage</a></td></tr>";
}
}
/*
* Generate coverage data for tested files
*
*@return array An array of coverage data
*/
public function generateCoverage()
{
$coveredArray = array();
foreach ($this->coverage as $file => $lines) {
$pos = strpos($file, $this->path);
if ($pos === false && $pos !== 0){
continue;
}
$class = str_replace(DIRECTORY_SEPARATOR, '_', substr($file, strlen($this->path), -4));
$class = str_replace($this->path, Doctrine::getPath(), $class);
if (strpos($class, '_Interface')) {
continue;
}
if ( ! class_exists($class)){
continue;
}
$total = count($lines) -1; //we have to remove one since it always reports the last line as a hit
$covered = 0;
$maybe = 0;
$notcovered = 0;
foreach ($lines as $result){
switch($result){
case self::COVERED:
$covered++;
break;
case self::NOTCOVERED:
$notcovered++;
break;
case self::MAYBE:
$maybe++;
break;
}
}
$covered--; //again we have to remove that last line.
$this->totallines += $total;
$this->totalcovered += $covered;
$this->totalnotcovered += $notcovered;
$this->totalmaybe += $maybe;
if ($total === 0) {
$total = 1;
}
$percentage = round((($covered + $maybe) / $total) * 100, 2);
$coveredArray[$class] = array("covered" => $covered, "maybe" => $maybe, "notcovered"=>$notcovered, "total" => $total, "percentage" => $percentage);
}
return $coveredArray;
}
/*
* Uasort function to sort the array by key
*
*/
public function sortArray($a, $b)
{
if ($a[$this->sortBy] == $b[$this->sortBy]) {
return 0;
}
return ( $a[$this->sortBy] < $b[$this->sortBy]) ? -1 : 1;
}
}
This source diff could not be displayed because it is too large. You can view the blob instead.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
...@@ -16,7 +16,7 @@ ...@@ -16,7 +16,7 @@
<td class="normal">/* <td class="normal">/*
</td></tr> </td></tr>
<tr><td>3</td> <tr><td>3</td>
<td class="normal">&nbsp;*&nbsp;&nbsp;$Id:&nbsp;Exception.php&nbsp;2702&nbsp;2007-10-03&nbsp;21:43:22Z&nbsp;Jonathan.Wage&nbsp;$ <td class="normal">&nbsp;*&nbsp;&nbsp;$Id:&nbsp;Exception.php&nbsp;2963&nbsp;2007-10-21&nbsp;06:23:59Z&nbsp;Jonathan.Wage&nbsp;$
</td></tr> </td></tr>
<tr><td>4</td> <tr><td>4</td>
<td class="normal">&nbsp;* <td class="normal">&nbsp;*
...@@ -100,7 +100,7 @@ ...@@ -100,7 +100,7 @@
<td class="normal">&nbsp;*&nbsp;@since&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;1.0 <td class="normal">&nbsp;*&nbsp;@since&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;1.0
</td></tr> </td></tr>
<tr><td>31</td> <tr><td>31</td>
<td class="normal">&nbsp;*&nbsp;@version&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$Revision:&nbsp;2702&nbsp;$ <td class="normal">&nbsp;*&nbsp;@version&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$Revision:&nbsp;2963&nbsp;$
</td></tr> </td></tr>
<tr><td>32</td> <tr><td>32</td>
<td class="normal">&nbsp;*&nbsp;@link&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;www.phpdoctrine.com <td class="normal">&nbsp;*&nbsp;@link&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;www.phpdoctrine.com
...@@ -172,62 +172,65 @@ ...@@ -172,62 +172,65 @@
<td class="normal">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;); <td class="normal">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;);
</td></tr> </td></tr>
<tr><td>55</td> <tr><td>55</td>
<td class="normal">&nbsp;&nbsp;&nbsp;&nbsp;/** <td class="normal">
</td></tr> </td></tr>
<tr><td>56</td> <tr><td>56</td>
<td class="normal">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;This&nbsp;method&nbsp;checks&nbsp;if&nbsp;native&nbsp;error&nbsp;code/message&nbsp;can&nbsp;be <td class="normal">&nbsp;&nbsp;&nbsp;&nbsp;/**
</td></tr> </td></tr>
<tr><td>57</td> <tr><td>57</td>
<td class="normal">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;converted&nbsp;into&nbsp;a&nbsp;portable&nbsp;code&nbsp;and&nbsp;then&nbsp;adds&nbsp;this <td class="normal">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;This&nbsp;method&nbsp;checks&nbsp;if&nbsp;native&nbsp;error&nbsp;code/message&nbsp;can&nbsp;be
</td></tr> </td></tr>
<tr><td>58</td> <tr><td>58</td>
<td class="normal">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;portable&nbsp;error&nbsp;code&nbsp;to&nbsp;$portableCode&nbsp;field <td class="normal">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;converted&nbsp;into&nbsp;a&nbsp;portable&nbsp;code&nbsp;and&nbsp;then&nbsp;adds&nbsp;this
</td></tr> </td></tr>
<tr><td>59</td> <tr><td>59</td>
<td class="normal">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;* <td class="normal">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;portable&nbsp;error&nbsp;code&nbsp;to&nbsp;$portableCode&nbsp;field
</td></tr> </td></tr>
<tr><td>60</td> <tr><td>60</td>
<td class="normal">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;@param&nbsp;array&nbsp;$errorInfo&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;error&nbsp;info&nbsp;array <td class="normal">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*
</td></tr> </td></tr>
<tr><td>61</td> <tr><td>61</td>
<td class="normal">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;@since&nbsp;1.0 <td class="normal">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;@param&nbsp;array&nbsp;$errorInfo&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;error&nbsp;info&nbsp;array
</td></tr> </td></tr>
<tr><td>62</td> <tr><td>62</td>
<td class="normal">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;@return&nbsp;boolean&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;whether&nbsp;or&nbsp;not&nbsp;the&nbsp;error&nbsp;info&nbsp;processing&nbsp;was&nbsp;successfull <td class="normal">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;@since&nbsp;1.0
</td></tr> </td></tr>
<tr><td>63</td> <tr><td>63</td>
<td class="normal">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(the&nbsp;process&nbsp;is&nbsp;successfull&nbsp;if&nbsp;portable&nbsp;error&nbsp;code&nbsp;was&nbsp;found) <td class="normal">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;@return&nbsp;boolean&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;whether&nbsp;or&nbsp;not&nbsp;the&nbsp;error&nbsp;info&nbsp;processing&nbsp;was&nbsp;successfull
</td></tr> </td></tr>
<tr><td>64</td> <tr><td>64</td>
<td class="normal">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*/ <td class="normal">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(the&nbsp;process&nbsp;is&nbsp;successfull&nbsp;if&nbsp;portable&nbsp;error&nbsp;code&nbsp;was&nbsp;found)
</td></tr> </td></tr>
<tr><td>65</td> <tr><td>65</td>
<td class="normal">&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;function&nbsp;processErrorInfo(array&nbsp;$errorInfo) <td class="normal">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*/
</td></tr> </td></tr>
<tr><td>66</td> <tr><td>66</td>
<td class="normal">&nbsp;&nbsp;&nbsp;&nbsp;{ <td class="normal">&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;function&nbsp;processErrorInfo(array&nbsp;$errorInfo)
</td></tr> </td></tr>
<tr><td>67</td> <tr><td>67</td>
<td class="covered">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$code&nbsp;=&nbsp;$errorInfo[1]; <td class="normal">&nbsp;&nbsp;&nbsp;&nbsp;{
</td></tr> </td></tr>
<tr><td>68</td> <tr><td>68</td>
<td class="covered">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(isset(self::$errorCodeMap[$code]))&nbsp;{ <td class="covered">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$code&nbsp;=&nbsp;$errorInfo[1];
</td></tr> </td></tr>
<tr><td>69</td> <tr><td>69</td>
<td class="covered">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$this-&gt;portableCode&nbsp;=&nbsp;self::$errorCodeMap[$code]; <td class="covered">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(isset(self::$errorCodeMap[$code]))&nbsp;{
</td></tr> </td></tr>
<tr><td>70</td> <tr><td>70</td>
<td class="covered">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;true; <td class="covered">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$this-&gt;portableCode&nbsp;=&nbsp;self::$errorCodeMap[$code];
</td></tr> </td></tr>
<tr><td>71</td> <tr><td>71</td>
<td class="orange">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} <td class="covered">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;true;
</td></tr> </td></tr>
<tr><td>72</td> <tr><td>72</td>
<td class="red">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;false; <td class="orange">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}
</td></tr> </td></tr>
<tr><td>73</td> <tr><td>73</td>
<td class="orange">&nbsp;&nbsp;&nbsp;&nbsp;} <td class="red">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;false;
</td></tr> </td></tr>
<tr><td>74</td> <tr><td>74</td>
<td class="orange">&nbsp;&nbsp;&nbsp;&nbsp;}
</td></tr>
<tr><td>75</td>
<td class="covered">}</td></tr> <td class="covered">}</td></tr>
</table></body></html> </table></body></html>
\ No newline at end of file
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
...@@ -16,7 +16,7 @@ ...@@ -16,7 +16,7 @@
<td class="normal">/* <td class="normal">/*
</td></tr> </td></tr>
<tr><td>3</td> <tr><td>3</td>
<td class="normal">&nbsp;*&nbsp;&nbsp;$Id:&nbsp;Exception.php&nbsp;2702&nbsp;2007-10-03&nbsp;21:43:22Z&nbsp;Jonathan.Wage&nbsp;$ <td class="normal">&nbsp;*&nbsp;&nbsp;$Id:&nbsp;Exception.php&nbsp;2963&nbsp;2007-10-21&nbsp;06:23:59Z&nbsp;Jonathan.Wage&nbsp;$
</td></tr> </td></tr>
<tr><td>4</td> <tr><td>4</td>
<td class="normal">&nbsp;* <td class="normal">&nbsp;*
...@@ -70,41 +70,44 @@ ...@@ -70,41 +70,44 @@
<td class="normal">&nbsp;*/ <td class="normal">&nbsp;*/
</td></tr> </td></tr>
<tr><td>21</td> <tr><td>21</td>
<td class="normal">/** <td class="normal">
</td></tr> </td></tr>
<tr><td>22</td> <tr><td>22</td>
<td class="normal">&nbsp;*&nbsp;Doctrine_Manager_Exception <td class="normal">/**
</td></tr> </td></tr>
<tr><td>23</td> <tr><td>23</td>
<td class="normal">&nbsp;* <td class="normal">&nbsp;*&nbsp;Doctrine_Manager_Exception
</td></tr> </td></tr>
<tr><td>24</td> <tr><td>24</td>
<td class="normal">&nbsp;*&nbsp;@package&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Doctrine <td class="normal">&nbsp;*
</td></tr> </td></tr>
<tr><td>25</td> <tr><td>25</td>
<td class="normal">&nbsp;*&nbsp;@subpackage&nbsp;&nbsp;Manager <td class="normal">&nbsp;*&nbsp;@package&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Doctrine
</td></tr> </td></tr>
<tr><td>26</td> <tr><td>26</td>
<td class="normal">&nbsp;*&nbsp;@license&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;http://www.opensource.org/licenses/lgpl-license.php&nbsp;LGPL <td class="normal">&nbsp;*&nbsp;@subpackage&nbsp;&nbsp;Manager
</td></tr> </td></tr>
<tr><td>27</td> <tr><td>27</td>
<td class="normal">&nbsp;*&nbsp;@link&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;www.phpdoctrine.com <td class="normal">&nbsp;*&nbsp;@license&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;http://www.opensource.org/licenses/lgpl-license.php&nbsp;LGPL
</td></tr> </td></tr>
<tr><td>28</td> <tr><td>28</td>
<td class="normal">&nbsp;*&nbsp;@since&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;1.0 <td class="normal">&nbsp;*&nbsp;@link&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;www.phpdoctrine.com
</td></tr> </td></tr>
<tr><td>29</td> <tr><td>29</td>
<td class="normal">&nbsp;*&nbsp;@version&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$Revision:&nbsp;2702&nbsp;$ <td class="normal">&nbsp;*&nbsp;@since&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;1.0
</td></tr> </td></tr>
<tr><td>30</td> <tr><td>30</td>
<td class="normal">&nbsp;*&nbsp;@author&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Konsta&nbsp;Vesterinen&nbsp;&lt;kvesteri@cc.hut.fi&gt; <td class="normal">&nbsp;*&nbsp;@version&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$Revision:&nbsp;2963&nbsp;$
</td></tr> </td></tr>
<tr><td>31</td> <tr><td>31</td>
<td class="normal">&nbsp;*/ <td class="normal">&nbsp;*&nbsp;@author&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Konsta&nbsp;Vesterinen&nbsp;&lt;kvesteri@cc.hut.fi&gt;
</td></tr> </td></tr>
<tr><td>32</td> <tr><td>32</td>
<td class="covered">class&nbsp;Doctrine_Manager_Exception&nbsp;extends&nbsp;Doctrine_Exception <td class="normal">&nbsp;*/
</td></tr> </td></tr>
<tr><td>33</td> <tr><td>33</td>
<td class="covered">class&nbsp;Doctrine_Manager_Exception&nbsp;extends&nbsp;Doctrine_Exception
</td></tr>
<tr><td>34</td>
<td class="covered">{&nbsp;}</td></tr> <td class="covered">{&nbsp;}</td></tr>
</table></body></html> </table></body></html>
\ No newline at end of file
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment