Merge branch 'develop' of github.com:laravel/laravel into develop
This commit is contained in:
commit
78243fedba
|
@ -0,0 +1,19 @@
|
|||
<?php
|
||||
|
||||
return array(
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Pagination Language Lines
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| The following language lines are used by the paginator library to build
|
||||
| the pagination links. You're free to change them to anything you want.
|
||||
| If you come up with something more exciting, let us know.
|
||||
|
|
||||
*/
|
||||
|
||||
'previous' => '← Назад',
|
||||
'next' => 'Вперёд →',
|
||||
|
||||
);
|
|
@ -0,0 +1,99 @@
|
|||
<?php
|
||||
|
||||
return array(
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Validation Language Lines
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| The following language lines contain the default error messages used
|
||||
| by the validator class. Some of the rules contain multiple versions,
|
||||
| such as the size (max, min, between) rules. These versions are used
|
||||
| for different input types such as strings and files.
|
||||
|
|
||||
| These language lines may be easily changed to provide custom error
|
||||
| messages in your application. Error messages for custom validation
|
||||
| rules may also be added to this file.
|
||||
|
|
||||
*/
|
||||
|
||||
"accepted" => "Вы должны принять :attribute.",
|
||||
"active_url" => "Поле :attribute должно быть полным URL.",
|
||||
"after" => "Поле :attribute должно быть датой после :date.",
|
||||
"alpha" => "Поле :attribute может содержать только буквы.",
|
||||
"alpha_dash" => "Поле :attribute может содержать только буквы, цифры и тире.",
|
||||
"alpha_num" => "Поле :attribute может содержать только буквы и цифры.",
|
||||
"before" => "Поле :attribute должно быть датой перед :date.",
|
||||
"between" => array(
|
||||
"numeric" => "Поле :attribute должно быть между :min и :max.",
|
||||
"file" => "Поле :attribute должно быть от :min до :max Килобайт.",
|
||||
"string" => "Поле :attribute должно быть от :min до :max символов.",
|
||||
),
|
||||
"confirmed" => "Поле :attribute не совпадает с подтверждением.",
|
||||
"different" => "Поля :attribute и :other должны различаться.",
|
||||
"email" => "Поле :attribute имеет неверный формат.",
|
||||
"exists" => "Выбранное значение для :attribute уже существует.",
|
||||
"image" => "Поле :attribute должно быть картинкой.",
|
||||
"in" => "Выбранное значение для :attribute не верно.",
|
||||
"integer" => "Поле :attribute должно быть целым числом.",
|
||||
"ip" => "Поле :attribute должно быть полным IP-адресом.",
|
||||
"match" => "Поле :attribute имеет неверный формат.",
|
||||
"max" => array(
|
||||
"numeric" => "Поле :attribute должно быть меньше :max.",
|
||||
"file" => "Поле :attribute должно быть меньше :max Килобайт.",
|
||||
"string" => "Поле :attribute должно быть короче :max символов.",
|
||||
),
|
||||
"mimes" => "Поле :attribute должно быть файлом одного из типов: :values.",
|
||||
"min" => array(
|
||||
"numeric" => "Поле :attribute должно быть не менее :min.",
|
||||
"file" => "Поле :attribute должно быть не менее :min Килобайт.",
|
||||
"string" => "Поле :attribute должно быть не короче :min символов.",
|
||||
),
|
||||
"not_in" => "Выбранное значение для :attribute не верно.",
|
||||
"numeric" => "Поле :attribute должно быть числом.",
|
||||
"required" => "Поле :attribute обязательно для заполнения.",
|
||||
"same" => "Значение :attribute должно совпадать с :other.",
|
||||
"size" => array(
|
||||
"numeric" => "Поле :attribute должно быть :size.",
|
||||
"file" => "Поле :attribute должно быть :size Килобайт.",
|
||||
"string" => "Поле :attribute должно быть длиной :size символов.",
|
||||
),
|
||||
"unique" => "Такое значение поля :attribute уже существует.",
|
||||
"url" => "Поле :attribute имеет неверный формат.",
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Custom Validation Language Lines
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| Here you may specify custom validation messages for attributes using the
|
||||
| convention "attribute_rule" to name the lines. This helps keep your
|
||||
| custom validation clean and tidy.
|
||||
|
|
||||
| So, say you want to use a custom validation message when validating that
|
||||
| the "email" attribute is unique. Just add "email_unique" to this array
|
||||
| with your custom message. The Validator will handle the rest!
|
||||
|
|
||||
*/
|
||||
|
||||
'custom' => array(),
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Validation Attributes
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| The following language lines are used to swap attribute place-holders
|
||||
| with something more reader friendly such as "E-Mail Address" instead
|
||||
| of "email". Your users will thank you.
|
||||
|
|
||||
| The Validator class will automatically search this array of lines it
|
||||
| is attempting to replace the :attribute place-holder in messages.
|
||||
| It's pretty slick. We think you'll like it.
|
||||
|
|
||||
*/
|
||||
|
||||
'attributes' => array(),
|
||||
|
||||
);
|
|
@ -1,92 +1,113 @@
|
|||
<!doctype html>
|
||||
<html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
|
||||
<title>Error 404 - Not Found</title>
|
||||
<meta name="viewport" content="width=device-width">
|
||||
<style type="text/css">
|
||||
@import url(http://fonts.googleapis.com/css?family=Droid+Sans);
|
||||
|
||||
<style>
|
||||
@import url(http://fonts.googleapis.com/css?family=Ubuntu);
|
||||
article, aside, details, figcaption, figure, footer, header, hgroup, nav, section { display: block; }
|
||||
audio, canvas, video { display: inline-block; *display: inline; *zoom: 1; }
|
||||
audio:not([controls]) { display: none; }
|
||||
[hidden] { display: none; }
|
||||
html { font-size: 100%; -webkit-text-size-adjust: 100%; -ms-text-size-adjust: 100%; }
|
||||
html, button, input, select, textarea { font-family: sans-serif; color: #222; }
|
||||
body { margin: 0; font-size: 1em; line-height: 1.4; }
|
||||
::-moz-selection { background: #E37B52; color: #fff; text-shadow: none; }
|
||||
::selection { background: #E37B52; color: #fff; text-shadow: none; }
|
||||
a { color: #00e; }
|
||||
a:visited { color: #551a8b; }
|
||||
a:hover { color: #06e; }
|
||||
a:focus { outline: thin dotted; }
|
||||
a:hover, a:active { outline: 0; }
|
||||
abbr[title] { border-bottom: 1px dotted; }
|
||||
b, strong { font-weight: bold; }
|
||||
blockquote { margin: 1em 40px; }
|
||||
dfn { font-style: italic; }
|
||||
hr { display: block; height: 1px; border: 0; border-top: 1px solid #ccc; margin: 1em 0; padding: 0; }
|
||||
ins { background: #ff9; color: #000; text-decoration: none; }
|
||||
mark { background: #ff0; color: #000; font-style: italic; font-weight: bold; }
|
||||
pre, code, kbd, samp { font-family: monospace, serif; _font-family: 'courier new', monospace; font-size: 1em; }
|
||||
pre { white-space: pre; white-space: pre-wrap; word-wrap: break-word; }
|
||||
q { quotes: none; }
|
||||
q:before, q:after { content: ""; content: none; }
|
||||
small { font-size: 85%; }
|
||||
sub, sup { font-size: 75%; line-height: 0; position: relative; vertical-align: baseline; }
|
||||
sup { top: -0.5em; }
|
||||
sub { bottom: -0.25em; }
|
||||
ul, ol { margin: 1em 0; padding: 0 0 0 40px; }
|
||||
dd { margin: 0 0 0 40px; }
|
||||
nav ul, nav ol { list-style: none; list-style-image: none; margin: 0; padding: 0; }
|
||||
img { border: 0; -ms-interpolation-mode: bicubic; vertical-align: middle; }
|
||||
svg:not(:root) { overflow: hidden; }
|
||||
figure { margin: 0; }
|
||||
form { margin: 0; }
|
||||
fieldset { border: 0; margin: 0; padding: 0; }
|
||||
label { cursor: pointer; }
|
||||
legend { border: 0; *margin-left: -7px; padding: 0; white-space: normal; }
|
||||
button, input, select, textarea { font-size: 100%; margin: 0; vertical-align: baseline; *vertical-align: middle; }
|
||||
button, input { line-height: normal; }
|
||||
button, input[type="button"], input[type="reset"], input[type="submit"] { cursor: pointer; -webkit-appearance: button; *overflow: visible; }
|
||||
button[disabled], input[disabled] { cursor: default; }
|
||||
input[type="checkbox"], input[type="radio"] { box-sizing: border-box; padding: 0; *width: 13px; *height: 13px; }
|
||||
input[type="search"] { -webkit-appearance: textfield; -moz-box-sizing: content-box; -webkit-box-sizing: content-box; box-sizing: content-box; }
|
||||
input[type="search"]::-webkit-search-decoration, input[type="search"]::-webkit-search-cancel-button { -webkit-appearance: none; }
|
||||
button::-moz-focus-inner, input::-moz-focus-inner { border: 0; padding: 0; }
|
||||
textarea { overflow: auto; vertical-align: top; resize: vertical; }
|
||||
input:valid, textarea:valid { }
|
||||
input:invalid, textarea:invalid { background-color: #f0dddd; }
|
||||
table { border-collapse: collapse; border-spacing: 0; }
|
||||
td { vertical-align: top; }
|
||||
|
||||
body {
|
||||
background: #eee;
|
||||
color: #6d6d6d;
|
||||
font: normal normal normal 14px/1.253 Ubuntu, sans-serif;
|
||||
margin: 0 0 25px 0;
|
||||
min-width: 800px;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
#main {
|
||||
background-clip: padding-box;
|
||||
background-color: #fff;
|
||||
border:1px solid #ccc;
|
||||
border-radius: 5px;
|
||||
box-shadow: 0 0 10px #cdcdcd;
|
||||
margin: 25px auto 0;
|
||||
padding: 30px;
|
||||
width: 700px;
|
||||
position: relative;
|
||||
}
|
||||
|
||||
#main h1 {
|
||||
font-family: 'Ubuntu';
|
||||
font-size: 38px;
|
||||
letter-spacing: 2px;
|
||||
margin: 0 0 10px 0;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
#main h2 {
|
||||
color: #999;
|
||||
font-size: 18px;
|
||||
letter-spacing: 3px;
|
||||
margin: 0 0 25px 0;
|
||||
padding: 0 0 0 0;
|
||||
}
|
||||
|
||||
#main h3 {
|
||||
color: #999;
|
||||
margin-top: 24px;
|
||||
padding: 0 0 0 0;
|
||||
}
|
||||
|
||||
#main h3 {
|
||||
font-size: 18px;
|
||||
}
|
||||
|
||||
#main p {
|
||||
body
|
||||
{
|
||||
font-family:'Droid Sans', sans-serif;
|
||||
font-size:10pt;
|
||||
color:#555;
|
||||
line-height: 25px;
|
||||
margin: 10px 0;
|
||||
}
|
||||
|
||||
#main pre {
|
||||
background-color: #333;
|
||||
border-left: 1px solid #d8d8d8;
|
||||
border-top: 1px solid #d8d8d8;
|
||||
border-radius: 5px;
|
||||
color: #eee;
|
||||
padding: 10px;
|
||||
.wrapper
|
||||
{
|
||||
width:760px;
|
||||
margin:0 auto 5em auto;
|
||||
}
|
||||
|
||||
#main ul {
|
||||
margin: 10px 0;
|
||||
padding: 0 30px;
|
||||
.main
|
||||
{
|
||||
overflow:hidden;
|
||||
}
|
||||
|
||||
#main li {
|
||||
margin: 5px 0;
|
||||
.error-spacer
|
||||
{
|
||||
height:4em;
|
||||
}
|
||||
|
||||
a, a:visited
|
||||
{
|
||||
color:#2972A3;
|
||||
}
|
||||
|
||||
a:hover
|
||||
{
|
||||
color:#72ADD4;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<div id="main">
|
||||
<body onload="prettyPrint()">
|
||||
<div class="wrapper">
|
||||
<div class="error-spacer"></div>
|
||||
<div role="main" class="main">
|
||||
<?php $messages = array('We need a map.', 'I think we\'re lost.', 'We took a wrong turn.'); ?>
|
||||
|
||||
<h1><?php echo $messages[mt_rand(0, 2)]; ?></h1>
|
||||
|
||||
<h2>Server Error: 404 (Not Found)</h2>
|
||||
|
||||
<hr>
|
||||
|
||||
<h3>What does this mean?</h3>
|
||||
|
||||
<p>
|
||||
|
@ -99,5 +120,6 @@
|
|||
Perhaps you would like to go to our <?php echo HTML::link('/', 'home page'); ?>?
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
|
@ -1,92 +1,113 @@
|
|||
<!doctype html>
|
||||
<html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
|
||||
<title>Error 500 - Internal Server Error</title>
|
||||
<meta name="viewport" content="width=device-width">
|
||||
<style type="text/css">
|
||||
@import url(http://fonts.googleapis.com/css?family=Droid+Sans);
|
||||
|
||||
<style>
|
||||
@import url(http://fonts.googleapis.com/css?family=Ubuntu);
|
||||
article, aside, details, figcaption, figure, footer, header, hgroup, nav, section { display: block; }
|
||||
audio, canvas, video { display: inline-block; *display: inline; *zoom: 1; }
|
||||
audio:not([controls]) { display: none; }
|
||||
[hidden] { display: none; }
|
||||
html { font-size: 100%; -webkit-text-size-adjust: 100%; -ms-text-size-adjust: 100%; }
|
||||
html, button, input, select, textarea { font-family: sans-serif; color: #222; }
|
||||
body { margin: 0; font-size: 1em; line-height: 1.4; }
|
||||
::-moz-selection { background: #E37B52; color: #fff; text-shadow: none; }
|
||||
::selection { background: #E37B52; color: #fff; text-shadow: none; }
|
||||
a { color: #00e; }
|
||||
a:visited { color: #551a8b; }
|
||||
a:hover { color: #06e; }
|
||||
a:focus { outline: thin dotted; }
|
||||
a:hover, a:active { outline: 0; }
|
||||
abbr[title] { border-bottom: 1px dotted; }
|
||||
b, strong { font-weight: bold; }
|
||||
blockquote { margin: 1em 40px; }
|
||||
dfn { font-style: italic; }
|
||||
hr { display: block; height: 1px; border: 0; border-top: 1px solid #ccc; margin: 1em 0; padding: 0; }
|
||||
ins { background: #ff9; color: #000; text-decoration: none; }
|
||||
mark { background: #ff0; color: #000; font-style: italic; font-weight: bold; }
|
||||
pre, code, kbd, samp { font-family: monospace, serif; _font-family: 'courier new', monospace; font-size: 1em; }
|
||||
pre { white-space: pre; white-space: pre-wrap; word-wrap: break-word; }
|
||||
q { quotes: none; }
|
||||
q:before, q:after { content: ""; content: none; }
|
||||
small { font-size: 85%; }
|
||||
sub, sup { font-size: 75%; line-height: 0; position: relative; vertical-align: baseline; }
|
||||
sup { top: -0.5em; }
|
||||
sub { bottom: -0.25em; }
|
||||
ul, ol { margin: 1em 0; padding: 0 0 0 40px; }
|
||||
dd { margin: 0 0 0 40px; }
|
||||
nav ul, nav ol { list-style: none; list-style-image: none; margin: 0; padding: 0; }
|
||||
img { border: 0; -ms-interpolation-mode: bicubic; vertical-align: middle; }
|
||||
svg:not(:root) { overflow: hidden; }
|
||||
figure { margin: 0; }
|
||||
form { margin: 0; }
|
||||
fieldset { border: 0; margin: 0; padding: 0; }
|
||||
label { cursor: pointer; }
|
||||
legend { border: 0; *margin-left: -7px; padding: 0; white-space: normal; }
|
||||
button, input, select, textarea { font-size: 100%; margin: 0; vertical-align: baseline; *vertical-align: middle; }
|
||||
button, input { line-height: normal; }
|
||||
button, input[type="button"], input[type="reset"], input[type="submit"] { cursor: pointer; -webkit-appearance: button; *overflow: visible; }
|
||||
button[disabled], input[disabled] { cursor: default; }
|
||||
input[type="checkbox"], input[type="radio"] { box-sizing: border-box; padding: 0; *width: 13px; *height: 13px; }
|
||||
input[type="search"] { -webkit-appearance: textfield; -moz-box-sizing: content-box; -webkit-box-sizing: content-box; box-sizing: content-box; }
|
||||
input[type="search"]::-webkit-search-decoration, input[type="search"]::-webkit-search-cancel-button { -webkit-appearance: none; }
|
||||
button::-moz-focus-inner, input::-moz-focus-inner { border: 0; padding: 0; }
|
||||
textarea { overflow: auto; vertical-align: top; resize: vertical; }
|
||||
input:valid, textarea:valid { }
|
||||
input:invalid, textarea:invalid { background-color: #f0dddd; }
|
||||
table { border-collapse: collapse; border-spacing: 0; }
|
||||
td { vertical-align: top; }
|
||||
|
||||
body {
|
||||
background: #eee;
|
||||
color: #6d6d6d;
|
||||
font: normal normal normal 14px/1.253 Ubuntu, sans-serif;
|
||||
margin: 0 0 25px 0;
|
||||
min-width: 800px;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
#main {
|
||||
background-clip: padding-box;
|
||||
background-color: #fff;
|
||||
border:1px solid #ccc;
|
||||
border-radius: 5px;
|
||||
box-shadow: 0 0 10px #cdcdcd;
|
||||
margin: 25px auto 0;
|
||||
padding: 30px;
|
||||
width: 700px;
|
||||
position: relative;
|
||||
}
|
||||
|
||||
#main h1 {
|
||||
font-family: 'Ubuntu';
|
||||
font-size: 38px;
|
||||
letter-spacing: 2px;
|
||||
margin: 0 0 10px 0;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
#main h2 {
|
||||
color: #999;
|
||||
font-size: 18px;
|
||||
letter-spacing: 3px;
|
||||
margin: 0 0 25px 0;
|
||||
padding: 0 0 0 0;
|
||||
}
|
||||
|
||||
#main h3 {
|
||||
color: #999;
|
||||
margin-top: 24px;
|
||||
padding: 0 0 0 0;
|
||||
}
|
||||
|
||||
#main h3 {
|
||||
font-size: 18px;
|
||||
}
|
||||
|
||||
#main p {
|
||||
body
|
||||
{
|
||||
font-family:'Droid Sans', sans-serif;
|
||||
font-size:10pt;
|
||||
color:#555;
|
||||
line-height: 25px;
|
||||
margin: 10px 0;
|
||||
}
|
||||
|
||||
#main pre {
|
||||
background-color: #333;
|
||||
border-left: 1px solid #d8d8d8;
|
||||
border-top: 1px solid #d8d8d8;
|
||||
border-radius: 5px;
|
||||
color: #eee;
|
||||
padding: 10px;
|
||||
.wrapper
|
||||
{
|
||||
width:760px;
|
||||
margin:0 auto 5em auto;
|
||||
}
|
||||
|
||||
#main ul {
|
||||
margin: 10px 0;
|
||||
padding: 0 30px;
|
||||
.main
|
||||
{
|
||||
overflow:hidden;
|
||||
}
|
||||
|
||||
#main li {
|
||||
margin: 5px 0;
|
||||
.error-spacer
|
||||
{
|
||||
height:4em;
|
||||
}
|
||||
|
||||
a, a:visited
|
||||
{
|
||||
color:#2972A3;
|
||||
}
|
||||
|
||||
a:hover
|
||||
{
|
||||
color:#72ADD4;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<div id="main">
|
||||
<body onload="prettyPrint()">
|
||||
<div class="wrapper">
|
||||
<div class="error-spacer"></div>
|
||||
<div role="main" class="main">
|
||||
<?php $messages = array('Ouch.', 'Oh no!', 'Whoops!'); ?>
|
||||
|
||||
<h1><?php echo $messages[mt_rand(0, 2)]; ?></h1>
|
||||
|
||||
<h2>Server Error: 500 (Internal Server Error)</h2>
|
||||
|
||||
<hr>
|
||||
|
||||
<h3>What does this mean?</h3>
|
||||
|
||||
<p>
|
||||
|
@ -99,5 +120,6 @@
|
|||
Perhaps you would like to go to our <?php echo HTML::link('/', 'home page'); ?>?
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
|
@ -1,11 +1,11 @@
|
|||
<?php namespace Laravel\Cache\Drivers; use Memcache;
|
||||
<?php namespace Laravel\Cache\Drivers;
|
||||
|
||||
class Memcached extends Driver {
|
||||
|
||||
/**
|
||||
* The Memcache instance.
|
||||
*
|
||||
* @var Memcache
|
||||
* @var Memcached
|
||||
*/
|
||||
protected $memcache;
|
||||
|
||||
|
@ -19,10 +19,10 @@ class Memcached extends Driver {
|
|||
/**
|
||||
* Create a new Memcached cache driver instance.
|
||||
*
|
||||
* @param Memcache $memcache
|
||||
* @param Memcached $memcache
|
||||
* @return void
|
||||
*/
|
||||
public function __construct(Memcache $memcache, $key)
|
||||
public function __construct(\Memcached $memcache, $key)
|
||||
{
|
||||
$this->key = $key;
|
||||
$this->memcache = $memcache;
|
||||
|
@ -68,7 +68,7 @@ protected function retrieve($key)
|
|||
*/
|
||||
public function put($key, $value, $minutes)
|
||||
{
|
||||
$this->memcache->set($this->key.$key, $value, 0, $minutes * 60);
|
||||
$this->memcache->set($this->key.$key, $value, $minutes * 60);
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
@ -33,6 +33,8 @@ ## Laravel 3.2
|
|||
- [Added `unless` structure to Blade template engine](/docs/views/templating#blade-unless).
|
||||
- [Added Blade comments](/docs/views/templating#blade-comments).
|
||||
- [Added simpler environment management](/docs/install#environments).
|
||||
- Added `View::exists` method.
|
||||
- Use [Memcached](http://php.net/manual/en/book.memcached.php) API instead of older [Memcache](http://php.net/manual/en/book.memcache.php) API.
|
||||
- Added support for bundles outside of the bundle directory.
|
||||
- Added support for DateTime database query bindings.
|
||||
- Migrated to the Symfony HttpFoundation component for core request / response handling.
|
||||
|
|
|
@ -39,6 +39,10 @@ #### Returning the view from a controller:
|
|||
return View::make('home.index');
|
||||
});
|
||||
|
||||
#### Determining if a view exists:
|
||||
|
||||
$exists = View::exists('home.index');
|
||||
|
||||
Sometimes you will need a little more control over the response sent to the browser. For example, you may need to set a custom header on the response, or change the HTTP status code. Here's how:
|
||||
|
||||
#### Returning a custom response:
|
||||
|
|
|
@ -5,7 +5,7 @@ class Memcached {
|
|||
/**
|
||||
* The Memcached connection instance.
|
||||
*
|
||||
* @var Memcache
|
||||
* @var Memcached
|
||||
*/
|
||||
protected static $connection;
|
||||
|
||||
|
@ -40,11 +40,11 @@ public static function connection()
|
|||
*/
|
||||
protected static function connect($servers)
|
||||
{
|
||||
$memcache = new \Memcache;
|
||||
$memcache = new \Memcached;
|
||||
|
||||
foreach ($servers as $server)
|
||||
{
|
||||
$memcache->addServer($server['host'], $server['port'], true, $server['weight']);
|
||||
$memcache->addServer($server['host'], $server['port'], $server['weight']);
|
||||
}
|
||||
|
||||
if ($memcache->getVersion() === false)
|
||||
|
|
|
@ -110,12 +110,13 @@ public function __construct($view, $data = array())
|
|||
}
|
||||
|
||||
/**
|
||||
* Get the path to a given view on disk.
|
||||
* Determine if the given view exists.
|
||||
*
|
||||
* @param string $view
|
||||
* @return string
|
||||
* @param boolean $return_path
|
||||
* @return string|bool
|
||||
*/
|
||||
protected function path($view)
|
||||
public static function exists($view, $return_path = false)
|
||||
{
|
||||
list($bundle, $view) = Bundle::parse($view);
|
||||
|
||||
|
@ -127,6 +128,22 @@ protected function path($view)
|
|||
$path = Event::first(static::loader, array($bundle, $view));
|
||||
|
||||
if ( ! is_null($path))
|
||||
{
|
||||
return $return_path ? $path : true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the path to a given view on disk.
|
||||
*
|
||||
* @param string $view
|
||||
* @return string
|
||||
*/
|
||||
protected function path($view)
|
||||
{
|
||||
if ($path = $this->exists($view,true))
|
||||
{
|
||||
return $path;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue