Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
D
doctrine-dbal
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Tomáš Trávníček
doctrine-dbal
Commits
0921d1db
Commit
0921d1db
authored
Sep 20, 2006
by
zYne
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Doctrine_Compiler added
parent
935fbb55
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
130 additions
and
85 deletions
+130
-85
Doctrine.php
Doctrine.php
+2
-85
Compiler.php
Doctrine/Compiler.php
+128
-0
No files found.
Doctrine.php
View file @
0921d1db
...
...
@@ -353,91 +353,8 @@ final class Doctrine {
* @return void
*/
public
static
function
compile
()
{
if
(
!
self
::
$path
)
self
::
$path
=
dirname
(
__FILE__
);
$classes
=
array
(
"Doctrine"
,
"Configurable"
,
"Manager"
,
"Session"
,
"Table"
,
"Iterator"
,
"Exception"
,
"Access"
,
"Null"
,
"Record"
,
"Record_Iterator"
,
"Collection"
,
"Validator"
,
"Hydrate"
,
"Query"
,
"Query_Part"
,
"Query_From"
,
"Query_Orderby"
,
"Query_Groupby"
,
"Query_Condition"
,
"Query_Where"
,
"Query_Having"
,
"RawSql"
,
"EventListener_Interface"
,
"EventListener"
,
"Relation"
,
"ForeignKey"
,
"LocalKey"
,
"Association"
,
"DB"
,
"DBStatement"
);
$ret
=
array
();
foreach
(
$classes
as
$class
)
{
if
(
$class
!==
'Doctrine'
)
$class
=
'Doctrine_'
.
$class
;
$file
=
self
::
$path
.
DIRECTORY_SEPARATOR
.
str_replace
(
"_"
,
DIRECTORY_SEPARATOR
,
$class
)
.
".php"
;
if
(
!
file_exists
(
$file
))
throw
new
Doctrine_Exception
(
"Couldn't compile
$file
. File
$file
does not exists."
);
self
::
autoload
(
$class
);
$refl
=
new
ReflectionClass
(
$class
);
$lines
=
file
(
$file
);
$start
=
$refl
->
getStartLine
()
-
1
;
$end
=
$refl
->
getEndLine
();
$ret
=
array_merge
(
$ret
,
array_slice
(
$lines
,
$start
,
(
$end
-
$start
)));
}
$file
=
self
::
$path
.
DIRECTORY_SEPARATOR
.
'Doctrine.compiled.php'
;
if
(
!
is_writable
(
$file
))
throw
new
Doctrine_Exception
(
"Couldn't write compiled data.
$file
is not writable"
);
// first write the 'compiled' data to a text file, so
// that we can use php_strip_whitespace (which only works on files)
$fp
=
fopen
(
$file
,
'w'
);
if
(
$fp
===
false
)
throw
new
Doctrine_Exception
(
"Couldn't write compiled data. Failed to open
$file
"
);
fwrite
(
$fp
,
"<?php"
.
" class InvalidKeyException extends Exception { }"
.
" class DQLException extends Exception { }"
.
implode
(
''
,
$ret
)
);
fclose
(
$fp
);
$stripped
=
php_strip_whitespace
(
$file
);
$fp
=
fopen
(
$file
,
'w'
);
if
(
$fp
===
false
)
throw
new
Doctrine_Exception
(
"Couldn't write compiled data. Failed to open
$file
"
);
fwrite
(
$fp
,
$stripped
);
fclose
(
$fp
);
}
Doctrine_Compiler
::
compile
();
}
/**
* simple autoload function
* returns true if the class was loaded, otherwise false
...
...
Doctrine/Compiler.php
0 → 100644
View file @
0921d1db
<?php
/*
* $Id$
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*
* This software consists of voluntary contributions made by many individuals
* and is licensed under the LGPL. For more information, see
* <http://www.phpdoctrine.com>.
*/
/**
* Doctrine
* the base class of Doctrine framework
*
* @package Doctrine
* @author Konsta Vesterinen
* @license LGPL
*/
class
Doctrine_Compiler
{
/**
* @var array $classes an array containing all runtime classes of Doctrine framework
*/
private
static
$classes
=
array
(
"Doctrine"
,
"Configurable"
,
"Manager"
,
"Session"
,
"Table"
,
"Iterator"
,
"Exception"
,
"Access"
,
"Null"
,
"Record"
,
"Record_Iterator"
,
"Collection"
,
"Validator"
,
"Hydrate"
,
"Query"
,
"Query_Part"
,
"Query_From"
,
"Query_Orderby"
,
"Query_Groupby"
,
"Query_Condition"
,
"Query_Where"
,
"Query_Having"
,
"RawSql"
,
"EventListener_Interface"
,
"EventListener"
,
"Relation"
,
"ForeignKey"
,
"LocalKey"
,
"Association"
,
"DB"
,
"DBStatement"
);
/**
* method for making a single file of most used doctrine runtime components
* including the compiled file instead of multiple files (in worst
* cases dozens of files) can improve performance by an order of magnitude
*
* @throws Doctrine_Exception
* @return void
*/
public
static
function
compile
()
{
$path
=
Doctrine
::
getPath
();
$classes
=
self
::
$classes
;
$ret
=
array
();
foreach
(
$classes
as
$class
)
{
if
(
$class
!==
'Doctrine'
)
$class
=
'Doctrine_'
.
$class
;
$file
=
$path
.
DIRECTORY_SEPARATOR
.
str_replace
(
"_"
,
DIRECTORY_SEPARATOR
,
$class
)
.
".php"
;
if
(
!
file_exists
(
$file
))
throw
new
Doctrine_Exception
(
"Couldn't compile
$file
. File
$file
does not exists."
);
self
::
autoload
(
$class
);
$refl
=
new
ReflectionClass
(
$class
);
$lines
=
file
(
$file
);
$start
=
$refl
->
getStartLine
()
-
1
;
$end
=
$refl
->
getEndLine
();
$ret
=
array_merge
(
$ret
,
array_slice
(
$lines
,
$start
,
(
$end
-
$start
)));
}
$file
=
$path
.
DIRECTORY_SEPARATOR
.
'Doctrine.compiled.php'
;
if
(
!
is_writable
(
$file
))
throw
new
Doctrine_Exception
(
"Couldn't write compiled data.
$file
is not writable"
);
// first write the 'compiled' data to a text file, so
// that we can use php_strip_whitespace (which only works on files)
$fp
=
fopen
(
$file
,
'w'
);
if
(
$fp
===
false
)
throw
new
Doctrine_Exception
(
"Couldn't write compiled data. Failed to open
$file
"
);
fwrite
(
$fp
,
"<?php"
.
" class InvalidKeyException extends Exception { }"
.
" class DQLException extends Exception { }"
.
implode
(
''
,
$ret
)
);
fclose
(
$fp
);
$stripped
=
php_strip_whitespace
(
$file
);
$fp
=
fopen
(
$file
,
'w'
);
if
(
$fp
===
false
)
throw
new
Doctrine_Exception
(
"Couldn't write compiled data. Failed to open
$file
"
);
fwrite
(
$fp
,
$stripped
);
fclose
(
$fp
);
}
}
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment