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
50b5ecc4
Commit
50b5ecc4
authored
Jul 08, 2007
by
jepso
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Implemented a cache for documentation.
parent
fcc58778
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
137 additions
and
34 deletions
+137
-34
Cache.php
manual/new/Cache.php
+84
-0
index.php
manual/new/index.php
+53
-34
No files found.
manual/new/Cache.php
0 → 100644
View file @
50b5ecc4
<?php
class
Cache
{
protected
$_dir
;
protected
$_ext
;
protected
$_page
;
protected
$_file
;
protected
$_timeToLive
;
public
function
__construct
(
$dir
,
$ext
,
$timeToLive
)
{
$this
->
_dir
=
$dir
;
$this
->
_ext
=
$ext
;
$this
->
_timeToLive
=
$timeToLive
;
$this
->
_page
=
'http://'
.
$_SERVER
[
'HTTP_HOST'
]
.
$_SERVER
[
'REQUEST_URI'
];
$this
->
_file
=
$this
->
_dir
.
md5
(
$this
->
_page
)
.
'.'
.
$this
->
_ext
;
}
/**
* Begins caching the output.
*
* @return A boolean value indicating whether a valid cached version of the
* page was found and echoed (false), or not (true).
*/
public
function
begin
()
{
$showCache
=
(
file_exists
(
$this
->
_file
)
&&
$this
->
isValid
());
clearstatcache
();
if
(
$showCache
)
{
readfile
(
$this
->
_file
);
return
false
;
}
else
{
ob_start
();
return
true
;
}
}
/**
* Ends caching the output and saves it to a cache file.
*
*/
public
function
end
()
{
// Generate a new cache file
$fp
=
@
fopen
(
$this
->
_file
,
'w'
);
// Save the contents of output buffer to the file
@
fwrite
(
$fp
,
ob_get_contents
());
@
fclose
(
$fp
);
ob_end_flush
();
}
/**
* Deletes all files in the cache directory.
*/
public
function
clear
()
{
if
(
$handle
=
opendir
(
$this
->
dir
))
{
while
(
$file
=
readdir
(
$handle
))
{
if
(
$file
!==
'.'
&&
$file
!==
'..'
)
{
unlink
(
$this
->
dir
.
'/'
.
$file
);
}
}
closedir
(
$handle
);
}
}
/**
* This method is used to check whether the cache file is valid to use.
*
* Currently it compares the modification date of the cache file to the
* time-to-live value.
*
* @return True, if cache file is valid; false otherwise.
*/
protected
function
isValid
()
{
return
(
time
()
-
filemtime
(
$this
->
_file
))
<
$this
->
_timeToLive
;
}
}
\ No newline at end of file
manual/new/index.php
View file @
50b5ecc4
...
...
@@ -7,47 +7,66 @@ set_include_path($includePath);
require_once
(
'Sensei/Sensei.php'
);
require_once
(
'DocTool.php'
);
require_once
(
'Cache.php'
);
spl_autoload_register
(
array
(
'Sensei'
,
'autoload'
));
$tool
=
new
DocTool
(
'docs/en/root.txt'
);
// $tool->setOption('clean-url', true);
$supportedLangs
=
array
(
'en'
,
'fi'
);
foreach
(
$supportedLangs
as
$language
)
{
include
"lang/
$language
.php"
;
$tool
->
addLanguage
(
$lang
[
$language
],
$language
);
// Executes the svn info command for the current directory and parses the last
// changed date in order to calculate the time-to-live value for cache.
$timeToLive
=
0
;
exec
(
'svn info .'
,
$output
);
foreach
(
$output
as
$line
)
{
if
(
preg_match
(
'/^Last Changed Date: (.*) \(.*\)$/'
,
$line
,
$matches
))
{
$timeToLive
=
time
()
-
strtotime
(
$matches
[
1
]);
break
;
}
}
$baseUrl
=
''
;
$title
=
'Doctrine Manual'
;
$section
=
null
;
$cache
=
new
Cache
(
'./cache/'
,
'cache'
,
$timeToLive
);
if
(
isset
(
$_GET
[
'chapter'
]))
{
$section
=
$tool
->
findByPath
(
$_GET
[
'chapter'
]);
if
(
$tool
->
getOption
(
'clean-url'
))
{
$baseUrl
=
'../'
;
}
}
if
(
$cache
->
begin
())
{
if
(
isset
(
$_GET
[
'one-page'
]))
{
$tool
->
setOption
(
'one-page'
,
true
);
$tool
->
setOption
(
'max-level'
,
0
);
$section
=
null
;
$tool
=
new
DocTool
(
'docs/en/root.txt'
);
// $tool->setOption('clean-url', true);
$supportedLangs
=
array
(
'en'
,
'fi'
);
foreach
(
$supportedLangs
as
$language
)
{
include
"lang/
$language
.php"
;
$tool
->
addLanguage
(
$lang
[
$language
],
$language
);
}
$baseUrl
=
''
;
}
if
(
$section
)
{
while
(
$section
->
getLevel
()
>
1
)
{
$section
=
$section
->
getParent
();
$title
=
'Doctrine Manual'
;
$section
=
null
;
if
(
isset
(
$_GET
[
'chapter'
]))
{
$section
=
$tool
->
findByPath
(
$_GET
[
'chapter'
]);
if
(
$tool
->
getOption
(
'clean-url'
))
{
$baseUrl
=
'../'
;
}
}
$tool
->
setOption
(
'section'
,
$section
);
$title
.=
' - Chapter '
.
$section
->
getIndex
()
.
' '
.
$section
->
getName
();
}
if
(
$tool
->
getOption
(
'clean-url'
))
{
$tool
->
setOption
(
'base-url'
,
$baseUrl
);
if
(
isset
(
$_GET
[
'one-page'
]))
{
$tool
->
setOption
(
'one-page'
,
true
);
$tool
->
setOption
(
'max-level'
,
0
);
$section
=
null
;
$baseUrl
=
''
;
}
if
(
$section
)
{
while
(
$section
->
getLevel
()
>
1
)
{
$section
=
$section
->
getParent
();
}
$tool
->
setOption
(
'section'
,
$section
);
$title
.=
' - Chapter '
.
$section
->
getIndex
()
.
' '
.
$section
->
getName
();
}
if
(
$tool
->
getOption
(
'clean-url'
))
{
$tool
->
setOption
(
'base-url'
,
$baseUrl
);
}
include
'template.php'
;
$cache
->
end
();
}
include
'template.php'
;
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