Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
Y
yii2
Project
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
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
PSDI Army
yii2
Commits
6e538ac6
Commit
6e538ac6
authored
11 years ago
by
Panagiotis Moustafellos
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'master' into cache-mset
parents
3ebbab02
6f526597
Hide whitespace changes
Inline
Side-by-side
Showing
78 changed files
with
532 additions
and
414 deletions
+532
-414
main.php
apps/advanced/backend/views/layouts/main.php
+5
-5
error.php
apps/advanced/backend/views/site/error.php
+2
-2
login.php
apps/advanced/backend/views/site/login.php
+5
-5
main.php
apps/advanced/frontend/views/layouts/main.php
+5
-5
about.php
apps/advanced/frontend/views/site/about.php
+2
-2
contact.php
apps/advanced/frontend/views/site/contact.php
+6
-6
error.php
apps/advanced/frontend/views/site/error.php
+2
-2
login.php
apps/advanced/frontend/views/site/login.php
+5
-5
requestPasswordResetToken.php
...dvanced/frontend/views/site/requestPasswordResetToken.php
+3
-3
resetPassword.php
apps/advanced/frontend/views/site/resetPassword.php
+3
-3
signup.php
apps/advanced/frontend/views/site/signup.php
+5
-5
WebGuy.php
apps/basic/tests/acceptance/WebGuy.php
+6
-6
TestGuy.php
apps/basic/tests/functional/TestGuy.php
+4
-4
main.php
apps/basic/views/layouts/main.php
+5
-5
about.php
apps/basic/views/site/about.php
+2
-2
contact.php
apps/basic/views/site/contact.php
+6
-6
error.php
apps/basic/views/site/error.php
+2
-2
login.php
apps/basic/views/site/login.php
+4
-4
ActiveRecord.md
docs/api/db/ActiveRecord.md
+7
-8
active-record.md
docs/guide/active-record.md
+10
-10
i18n.md
docs/guide/i18n.md
+1
-1
installation.md
docs/guide/installation.md
+11
-40
upgrade-from-v1.md
docs/guide/upgrade-from-v1.md
+3
-3
url.md
docs/guide/url.md
+113
-0
view.md
docs/guide/view.md
+8
-8
Installer.php
extensions/composer/yii/composer/Installer.php
+4
-4
InstallerPlugin.php
extensions/composer/yii/composer/InstallerPlugin.php
+1
-1
composer.json
extensions/jui/composer.json
+1
-1
composer.json
extensions/mutex/composer.json
+1
-1
composer.json
extensions/smarty/composer.json
+2
-2
composer.json
extensions/twig/composer.json
+2
-2
BaseYii.php
framework/yii/BaseYii.php
+1
-2
Application.php
framework/yii/base/Application.php
+59
-11
Extension.php
framework/yii/base/Extension.php
+10
-0
Module.php
framework/yii/base/Module.php
+7
-13
View.php
framework/yii/base/View.php
+2
-2
ActiveRecord.php
framework/yii/db/ActiveRecord.php
+4
-22
index.php
framework/yii/debug/views/default/index.php
+5
-5
toolbar.php
framework/yii/debug/views/default/toolbar.php
+5
-5
view.php
framework/yii/debug/views/default/view.php
+2
-2
main.php
framework/yii/debug/views/layouts/main.php
+2
-2
controller.php
...rk/yii/gii/generators/controller/templates/controller.php
+4
-4
view.php
framework/yii/gii/generators/controller/templates/view.php
+3
-3
Generator.php
framework/yii/gii/generators/crud/Generator.php
+6
-6
controller.php
framework/yii/gii/generators/crud/templates/controller.php
+29
-29
search.php
framework/yii/gii/generators/crud/templates/search.php
+9
-9
_form.php
framework/yii/gii/generators/crud/templates/views/_form.php
+6
-6
_search.php
...ework/yii/gii/generators/crud/templates/views/_search.php
+8
-8
create.php
framework/yii/gii/generators/crud/templates/views/create.php
+6
-6
index.php
framework/yii/gii/generators/crud/templates/views/index.php
+12
-12
update.php
framework/yii/gii/generators/crud/templates/views/update.php
+7
-7
view.php
framework/yii/gii/generators/crud/templates/views/view.php
+9
-9
action.php
framework/yii/gii/generators/form/templates/action.php
+3
-3
form.php
framework/yii/gii/generators/form/templates/form.php
+8
-8
model.php
framework/yii/gii/generators/model/templates/model.php
+10
-10
controller.php
framework/yii/gii/generators/module/templates/controller.php
+1
-1
module.php
framework/yii/gii/generators/module/templates/module.php
+3
-3
view.php
framework/yii/gii/generators/module/templates/view.php
+6
-6
diff.php
framework/yii/gii/views/default/diff.php
+1
-1
index.php
framework/yii/gii/views/default/index.php
+3
-3
view.php
framework/yii/gii/views/default/view.php
+4
-4
files.php
framework/yii/gii/views/default/view/files.php
+3
-3
results.php
framework/yii/gii/views/default/view/results.php
+1
-1
generator.php
framework/yii/gii/views/layouts/generator.php
+1
-1
main.php
framework/yii/gii/views/layouts/main.php
+3
-3
index.php
framework/yii/requirements/views/web/index.php
+6
-6
callStackItem.php
framework/yii/views/errorHandler/callStackItem.php
+4
-4
error.php
framework/yii/views/errorHandler/error.php
+4
-4
exception.php
framework/yii/views/errorHandler/exception.php
+9
-9
previousException.php
framework/yii/views/errorHandler/previousException.php
+6
-6
migration.php
framework/yii/views/migration.php
+2
-2
AssetBundle.php
framework/yii/web/AssetBundle.php
+7
-8
AssetManager.php
framework/yii/web/AssetManager.php
+7
-3
User.php
framework/yii/web/User.php
+0
-1
Customer.php
tests/unit/data/ar/Customer.php
+1
-1
Order.php
tests/unit/data/ar/Order.php
+4
-4
OrderItem.php
tests/unit/data/ar/OrderItem.php
+2
-2
layout.php
tests/unit/data/views/layout.php
+1
-1
No files found.
apps/advanced/backend/views/layouts/main.php
View file @
6e538ac6
...
@@ -15,8 +15,8 @@ AppAsset::register($this);
...
@@ -15,8 +15,8 @@ AppAsset::register($this);
<!DOCTYPE html>
<!DOCTYPE html>
<html
lang=
"en"
>
<html
lang=
"en"
>
<head>
<head>
<meta
charset=
"
<?=
Yii
::
$app
->
charset
;
?>
"
/>
<meta
charset=
"
<?=
Yii
::
$app
->
charset
?>
"
/>
<title>
<?=
Html
::
encode
(
$this
->
title
);
?>
</title>
<title>
<?=
Html
::
encode
(
$this
->
title
)
?>
</title>
<?php
$this
->
head
();
?>
<?php
$this
->
head
();
?>
</head>
</head>
<body>
<body>
...
@@ -48,13 +48,13 @@ AppAsset::register($this);
...
@@ -48,13 +48,13 @@ AppAsset::register($this);
<?=
Breadcrumbs
::
widget
([
<?=
Breadcrumbs
::
widget
([
'links'
=>
isset
(
$this
->
params
[
'breadcrumbs'
])
?
$this
->
params
[
'breadcrumbs'
]
:
[],
'links'
=>
isset
(
$this
->
params
[
'breadcrumbs'
])
?
$this
->
params
[
'breadcrumbs'
]
:
[],
]);
?>
]);
?>
<?=
$content
;
?>
<?=
$content
?>
</div>
</div>
<footer
class=
"footer"
>
<footer
class=
"footer"
>
<div
class=
"container"
>
<div
class=
"container"
>
<p
class=
"pull-left"
>
©
My Company
<?=
date
(
'Y'
);
?>
</p>
<p
class=
"pull-left"
>
©
My Company
<?=
date
(
'Y'
)
?>
</p>
<p
class=
"pull-right"
>
<?=
Yii
::
powered
();
?>
</p>
<p
class=
"pull-right"
>
<?=
Yii
::
powered
()
?>
</p>
</div>
</div>
</footer>
</footer>
...
...
This diff is collapsed.
Click to expand it.
apps/advanced/backend/views/site/error.php
View file @
6e538ac6
...
@@ -13,10 +13,10 @@ $this->title = $name;
...
@@ -13,10 +13,10 @@ $this->title = $name;
?>
?>
<div
class=
"site-error"
>
<div
class=
"site-error"
>
<h1>
<?=
Html
::
encode
(
$this
->
title
);
?>
</h1>
<h1>
<?=
Html
::
encode
(
$this
->
title
)
?>
</h1>
<div
class=
"alert alert-danger"
>
<div
class=
"alert alert-danger"
>
<?=
nl2br
(
Html
::
encode
(
$message
));
?>
<?=
nl2br
(
Html
::
encode
(
$message
))
?>
</div>
</div>
<p>
<p>
...
...
This diff is collapsed.
Click to expand it.
apps/advanced/backend/views/site/login.php
View file @
6e538ac6
...
@@ -11,18 +11,18 @@ $this->title = 'Login';
...
@@ -11,18 +11,18 @@ $this->title = 'Login';
$this
->
params
[
'breadcrumbs'
][]
=
$this
->
title
;
$this
->
params
[
'breadcrumbs'
][]
=
$this
->
title
;
?>
?>
<div
class=
"site-login"
>
<div
class=
"site-login"
>
<h1>
<?=
Html
::
encode
(
$this
->
title
);
?>
</h1>
<h1>
<?=
Html
::
encode
(
$this
->
title
)
?>
</h1>
<p>
Please fill out the following fields to login:
</p>
<p>
Please fill out the following fields to login:
</p>
<div
class=
"row"
>
<div
class=
"row"
>
<div
class=
"col-lg-5"
>
<div
class=
"col-lg-5"
>
<?php
$form
=
ActiveForm
::
begin
([
'id'
=>
'login-form'
]);
?>
<?php
$form
=
ActiveForm
::
begin
([
'id'
=>
'login-form'
]);
?>
<?=
$form
->
field
(
$model
,
'username'
);
?>
<?=
$form
->
field
(
$model
,
'username'
)
?>
<?=
$form
->
field
(
$model
,
'password'
)
->
passwordInput
();
?>
<?=
$form
->
field
(
$model
,
'password'
)
->
passwordInput
()
?>
<?=
$form
->
field
(
$model
,
'rememberMe'
)
->
checkbox
();
?>
<?=
$form
->
field
(
$model
,
'rememberMe'
)
->
checkbox
()
?>
<div
class=
"form-group"
>
<div
class=
"form-group"
>
<?=
Html
::
submitButton
(
'Login'
,
[
'class'
=>
'btn btn-primary'
]);
?>
<?=
Html
::
submitButton
(
'Login'
,
[
'class'
=>
'btn btn-primary'
])
?>
</div>
</div>
<?php
ActiveForm
::
end
();
?>
<?php
ActiveForm
::
end
();
?>
</div>
</div>
...
...
This diff is collapsed.
Click to expand it.
apps/advanced/frontend/views/layouts/main.php
View file @
6e538ac6
...
@@ -16,8 +16,8 @@ AppAsset::register($this);
...
@@ -16,8 +16,8 @@ AppAsset::register($this);
<!DOCTYPE html>
<!DOCTYPE html>
<html
lang=
"en"
>
<html
lang=
"en"
>
<head>
<head>
<meta
charset=
"
<?=
Yii
::
$app
->
charset
;
?>
"
/>
<meta
charset=
"
<?=
Yii
::
$app
->
charset
?>
"
/>
<title>
<?=
Html
::
encode
(
$this
->
title
);
?>
</title>
<title>
<?=
Html
::
encode
(
$this
->
title
)
?>
</title>
<?php
$this
->
head
();
?>
<?php
$this
->
head
();
?>
</head>
</head>
<body>
<body>
...
@@ -53,13 +53,13 @@ AppAsset::register($this);
...
@@ -53,13 +53,13 @@ AppAsset::register($this);
'links'
=>
isset
(
$this
->
params
[
'breadcrumbs'
])
?
$this
->
params
[
'breadcrumbs'
]
:
[],
'links'
=>
isset
(
$this
->
params
[
'breadcrumbs'
])
?
$this
->
params
[
'breadcrumbs'
]
:
[],
]);
?>
]);
?>
<?=
Alert
::
widget
()
?>
<?=
Alert
::
widget
()
?>
<?=
$content
;
?>
<?=
$content
?>
</div>
</div>
<footer
class=
"footer"
>
<footer
class=
"footer"
>
<div
class=
"container"
>
<div
class=
"container"
>
<p
class=
"pull-left"
>
©
My Company
<?=
date
(
'Y'
);
?>
</p>
<p
class=
"pull-left"
>
©
My Company
<?=
date
(
'Y'
)
?>
</p>
<p
class=
"pull-right"
>
<?=
Yii
::
powered
();
?>
</p>
<p
class=
"pull-right"
>
<?=
Yii
::
powered
()
?>
</p>
</div>
</div>
</footer>
</footer>
...
...
This diff is collapsed.
Click to expand it.
apps/advanced/frontend/views/site/about.php
View file @
6e538ac6
...
@@ -8,9 +8,9 @@ $this->title = 'About';
...
@@ -8,9 +8,9 @@ $this->title = 'About';
$this
->
params
[
'breadcrumbs'
][]
=
$this
->
title
;
$this
->
params
[
'breadcrumbs'
][]
=
$this
->
title
;
?>
?>
<div
class=
"site-about"
>
<div
class=
"site-about"
>
<h1>
<?=
Html
::
encode
(
$this
->
title
);
?>
</h1>
<h1>
<?=
Html
::
encode
(
$this
->
title
)
?>
</h1>
<p>
This is the About page. You may modify the following file to customize its content:
</p>
<p>
This is the About page. You may modify the following file to customize its content:
</p>
<code>
<?=
__FILE__
;
?>
</code>
<code>
<?=
__FILE__
?>
</code>
</div>
</div>
This diff is collapsed.
Click to expand it.
apps/advanced/frontend/views/site/contact.php
View file @
6e538ac6
...
@@ -12,7 +12,7 @@ $this->title = 'Contact';
...
@@ -12,7 +12,7 @@ $this->title = 'Contact';
$this
->
params
[
'breadcrumbs'
][]
=
$this
->
title
;
$this
->
params
[
'breadcrumbs'
][]
=
$this
->
title
;
?>
?>
<div
class=
"site-contact"
>
<div
class=
"site-contact"
>
<h1>
<?=
Html
::
encode
(
$this
->
title
);
?>
</h1>
<h1>
<?=
Html
::
encode
(
$this
->
title
)
?>
</h1>
<p>
<p>
If you have business inquiries or other questions, please fill out the following form to contact us. Thank you.
If you have business inquiries or other questions, please fill out the following form to contact us. Thank you.
...
@@ -21,16 +21,16 @@ $this->params['breadcrumbs'][] = $this->title;
...
@@ -21,16 +21,16 @@ $this->params['breadcrumbs'][] = $this->title;
<div
class=
"row"
>
<div
class=
"row"
>
<div
class=
"col-lg-5"
>
<div
class=
"col-lg-5"
>
<?php
$form
=
ActiveForm
::
begin
([
'id'
=>
'contact-form'
]);
?>
<?php
$form
=
ActiveForm
::
begin
([
'id'
=>
'contact-form'
]);
?>
<?=
$form
->
field
(
$model
,
'name'
);
?>
<?=
$form
->
field
(
$model
,
'name'
)
?>
<?=
$form
->
field
(
$model
,
'email'
);
?>
<?=
$form
->
field
(
$model
,
'email'
)
?>
<?=
$form
->
field
(
$model
,
'subject'
);
?>
<?=
$form
->
field
(
$model
,
'subject'
)
?>
<?=
$form
->
field
(
$model
,
'body'
)
->
textArea
([
'rows'
=>
6
]);
?>
<?=
$form
->
field
(
$model
,
'body'
)
->
textArea
([
'rows'
=>
6
])
?>
<?=
$form
->
field
(
$model
,
'verifyCode'
)
->
widget
(
Captcha
::
className
(),
[
<?=
$form
->
field
(
$model
,
'verifyCode'
)
->
widget
(
Captcha
::
className
(),
[
'options'
=>
[
'class'
=>
'form-control'
],
'options'
=>
[
'class'
=>
'form-control'
],
'template'
=>
'<div class="row"><div class="col-lg-3">{image}</div><div class="col-lg-6">{input}</div></div>'
,
'template'
=>
'<div class="row"><div class="col-lg-3">{image}</div><div class="col-lg-6">{input}</div></div>'
,
]);
?>
]);
?>
<div
class=
"form-group"
>
<div
class=
"form-group"
>
<?=
Html
::
submitButton
(
'Submit'
,
[
'class'
=>
'btn btn-primary'
]);
?>
<?=
Html
::
submitButton
(
'Submit'
,
[
'class'
=>
'btn btn-primary'
])
?>
</div>
</div>
<?php
ActiveForm
::
end
();
?>
<?php
ActiveForm
::
end
();
?>
</div>
</div>
...
...
This diff is collapsed.
Click to expand it.
apps/advanced/frontend/views/site/error.php
View file @
6e538ac6
...
@@ -13,10 +13,10 @@ $this->title = $name;
...
@@ -13,10 +13,10 @@ $this->title = $name;
?>
?>
<div
class=
"site-error"
>
<div
class=
"site-error"
>
<h1>
<?=
Html
::
encode
(
$this
->
title
);
?>
</h1>
<h1>
<?=
Html
::
encode
(
$this
->
title
)
?>
</h1>
<div
class=
"alert alert-danger"
>
<div
class=
"alert alert-danger"
>
<?=
nl2br
(
Html
::
encode
(
$message
));
?>
<?=
nl2br
(
Html
::
encode
(
$message
))
?>
</div>
</div>
<p>
<p>
...
...
This diff is collapsed.
Click to expand it.
apps/advanced/frontend/views/site/login.php
View file @
6e538ac6
...
@@ -11,21 +11,21 @@ $this->title = 'Login';
...
@@ -11,21 +11,21 @@ $this->title = 'Login';
$this
->
params
[
'breadcrumbs'
][]
=
$this
->
title
;
$this
->
params
[
'breadcrumbs'
][]
=
$this
->
title
;
?>
?>
<div
class=
"site-login"
>
<div
class=
"site-login"
>
<h1>
<?=
Html
::
encode
(
$this
->
title
);
?>
</h1>
<h1>
<?=
Html
::
encode
(
$this
->
title
)
?>
</h1>
<p>
Please fill out the following fields to login:
</p>
<p>
Please fill out the following fields to login:
</p>
<div
class=
"row"
>
<div
class=
"row"
>
<div
class=
"col-lg-5"
>
<div
class=
"col-lg-5"
>
<?php
$form
=
ActiveForm
::
begin
([
'id'
=>
'login-form'
]);
?>
<?php
$form
=
ActiveForm
::
begin
([
'id'
=>
'login-form'
]);
?>
<?=
$form
->
field
(
$model
,
'username'
);
?>
<?=
$form
->
field
(
$model
,
'username'
)
?>
<?=
$form
->
field
(
$model
,
'password'
)
->
passwordInput
();
?>
<?=
$form
->
field
(
$model
,
'password'
)
->
passwordInput
()
?>
<?=
$form
->
field
(
$model
,
'rememberMe'
)
->
checkbox
();
?>
<?=
$form
->
field
(
$model
,
'rememberMe'
)
->
checkbox
()
?>
<div
style=
"color:#999;margin:1em 0"
>
<div
style=
"color:#999;margin:1em 0"
>
If you forgot your password you can
<?=
Html
::
a
(
'reset it'
,
[
'site/request-password-reset'
])
?>
.
If you forgot your password you can
<?=
Html
::
a
(
'reset it'
,
[
'site/request-password-reset'
])
?>
.
</div>
</div>
<div
class=
"form-group"
>
<div
class=
"form-group"
>
<?=
Html
::
submitButton
(
'Login'
,
[
'class'
=>
'btn btn-primary'
]);
?>
<?=
Html
::
submitButton
(
'Login'
,
[
'class'
=>
'btn btn-primary'
])
?>
</div>
</div>
<?php
ActiveForm
::
end
();
?>
<?php
ActiveForm
::
end
();
?>
</div>
</div>
...
...
This diff is collapsed.
Click to expand it.
apps/advanced/frontend/views/site/requestPasswordResetToken.php
View file @
6e538ac6
...
@@ -11,16 +11,16 @@ $this->title = 'Request password reset';
...
@@ -11,16 +11,16 @@ $this->title = 'Request password reset';
$this
->
params
[
'breadcrumbs'
][]
=
$this
->
title
;
$this
->
params
[
'breadcrumbs'
][]
=
$this
->
title
;
?>
?>
<div
class=
"site-request-password-reset"
>
<div
class=
"site-request-password-reset"
>
<h1>
<?=
Html
::
encode
(
$this
->
title
);
?>
</h1>
<h1>
<?=
Html
::
encode
(
$this
->
title
)
?>
</h1>
<p>
Please fill out your email. A link to reset password will be sent there.
</p>
<p>
Please fill out your email. A link to reset password will be sent there.
</p>
<div
class=
"row"
>
<div
class=
"row"
>
<div
class=
"col-lg-5"
>
<div
class=
"col-lg-5"
>
<?php
$form
=
ActiveForm
::
begin
([
'id'
=>
'request-password-reset-form'
]);
?>
<?php
$form
=
ActiveForm
::
begin
([
'id'
=>
'request-password-reset-form'
]);
?>
<?=
$form
->
field
(
$model
,
'email'
);
?>
<?=
$form
->
field
(
$model
,
'email'
)
?>
<div
class=
"form-group"
>
<div
class=
"form-group"
>
<?=
Html
::
submitButton
(
'Send'
,
[
'class'
=>
'btn btn-primary'
]);
?>
<?=
Html
::
submitButton
(
'Send'
,
[
'class'
=>
'btn btn-primary'
])
?>
</div>
</div>
<?php
ActiveForm
::
end
();
?>
<?php
ActiveForm
::
end
();
?>
</div>
</div>
...
...
This diff is collapsed.
Click to expand it.
apps/advanced/frontend/views/site/resetPassword.php
View file @
6e538ac6
...
@@ -11,16 +11,16 @@ $this->title = 'Reset password';
...
@@ -11,16 +11,16 @@ $this->title = 'Reset password';
$this
->
params
[
'breadcrumbs'
][]
=
$this
->
title
;
$this
->
params
[
'breadcrumbs'
][]
=
$this
->
title
;
?>
?>
<div
class=
"site-reset-password"
>
<div
class=
"site-reset-password"
>
<h1>
<?=
Html
::
encode
(
$this
->
title
);
?>
</h1>
<h1>
<?=
Html
::
encode
(
$this
->
title
)
?>
</h1>
<p>
Please choose your new password:
</p>
<p>
Please choose your new password:
</p>
<div
class=
"row"
>
<div
class=
"row"
>
<div
class=
"col-lg-5"
>
<div
class=
"col-lg-5"
>
<?php
$form
=
ActiveForm
::
begin
([
'id'
=>
'reset-password-form'
]);
?>
<?php
$form
=
ActiveForm
::
begin
([
'id'
=>
'reset-password-form'
]);
?>
<?=
$form
->
field
(
$model
,
'password'
)
->
passwordInput
();
?>
<?=
$form
->
field
(
$model
,
'password'
)
->
passwordInput
()
?>
<div
class=
"form-group"
>
<div
class=
"form-group"
>
<?=
Html
::
submitButton
(
'Save'
,
[
'class'
=>
'btn btn-primary'
]);
?>
<?=
Html
::
submitButton
(
'Save'
,
[
'class'
=>
'btn btn-primary'
])
?>
</div>
</div>
<?php
ActiveForm
::
end
();
?>
<?php
ActiveForm
::
end
();
?>
</div>
</div>
...
...
This diff is collapsed.
Click to expand it.
apps/advanced/frontend/views/site/signup.php
View file @
6e538ac6
...
@@ -11,18 +11,18 @@ $this->title = 'Signup';
...
@@ -11,18 +11,18 @@ $this->title = 'Signup';
$this
->
params
[
'breadcrumbs'
][]
=
$this
->
title
;
$this
->
params
[
'breadcrumbs'
][]
=
$this
->
title
;
?>
?>
<div
class=
"site-signup"
>
<div
class=
"site-signup"
>
<h1>
<?=
Html
::
encode
(
$this
->
title
);
?>
</h1>
<h1>
<?=
Html
::
encode
(
$this
->
title
)
?>
</h1>
<p>
Please fill out the following fields to signup:
</p>
<p>
Please fill out the following fields to signup:
</p>
<div
class=
"row"
>
<div
class=
"row"
>
<div
class=
"col-lg-5"
>
<div
class=
"col-lg-5"
>
<?php
$form
=
ActiveForm
::
begin
([
'id'
=>
'form-signup'
]);
?>
<?php
$form
=
ActiveForm
::
begin
([
'id'
=>
'form-signup'
]);
?>
<?=
$form
->
field
(
$model
,
'username'
);
?>
<?=
$form
->
field
(
$model
,
'username'
)
?>
<?=
$form
->
field
(
$model
,
'email'
);
?>
<?=
$form
->
field
(
$model
,
'email'
)
?>
<?=
$form
->
field
(
$model
,
'password'
)
->
passwordInput
();
?>
<?=
$form
->
field
(
$model
,
'password'
)
->
passwordInput
()
?>
<div
class=
"form-group"
>
<div
class=
"form-group"
>
<?=
Html
::
submitButton
(
'Signup'
,
[
'class'
=>
'btn btn-primary'
]);
?>
<?=
Html
::
submitButton
(
'Signup'
,
[
'class'
=>
'btn btn-primary'
])
?>
</div>
</div>
<?php
ActiveForm
::
end
();
?>
<?php
ActiveForm
::
end
();
?>
</div>
</div>
...
...
This diff is collapsed.
Click to expand it.
apps/basic/tests/acceptance/WebGuy.php
View file @
6e538ac6
...
@@ -36,7 +36,7 @@ class WebGuy extends \Codeception\AbstractGuy
...
@@ -36,7 +36,7 @@ class WebGuy extends \Codeception\AbstractGuy
*
*
* ``` php
* ``` php
* <?php
* <?php
* $I->submitForm('#login',
array('login' => 'davert', 'password' => '123456')
);
* $I->submitForm('#login',
['login' => 'davert', 'password' => '123456']
);
*
*
* ```
* ```
*
*
...
@@ -55,7 +55,7 @@ class WebGuy extends \Codeception\AbstractGuy
...
@@ -55,7 +55,7 @@ class WebGuy extends \Codeception\AbstractGuy
*
*
* ``` php
* ``` php
* <?php
* <?php
* $I->submitForm('#userForm',
array('user' => array('login' => 'Davert', 'password' => '123456', 'agree' => true))
);
* $I->submitForm('#userForm',
['user' => ['login' => 'Davert', 'password' => '123456', 'agree' => true]]
);
*
*
* ```
* ```
* Note, that pricing plan will be set to Paid, as it's selected on page.
* Note, that pricing plan will be set to Paid, as it's selected on page.
...
@@ -89,8 +89,8 @@ class WebGuy extends \Codeception\AbstractGuy
...
@@ -89,8 +89,8 @@ class WebGuy extends \Codeception\AbstractGuy
*
*
* ``` php
* ``` php
* <?php
* <?php
* $I->sendAjaxPostRequest('/updateSettings',
array('notifications' => true)
; // POST
* $I->sendAjaxPostRequest('/updateSettings',
['notifications' => true]
; // POST
* $I->sendAjaxGetRequest('/updateSettings',
array('notifications' => true)
; // GET
* $I->sendAjaxGetRequest('/updateSettings',
['notifications' => true]
; // GET
*
*
* ```
* ```
*
*
...
@@ -202,12 +202,12 @@ class WebGuy extends \Codeception\AbstractGuy
...
@@ -202,12 +202,12 @@ class WebGuy extends \Codeception\AbstractGuy
* // from the official Guzzle manual
* // from the official Guzzle manual
* $I->amGoingTo('Sign all requests with OAuth');
* $I->amGoingTo('Sign all requests with OAuth');
* $I->executeInGuzzle(function (\Guzzle\Http\Client $client) {
* $I->executeInGuzzle(function (\Guzzle\Http\Client $client) {
* $client->addSubscriber(new Guzzle\Plugin\Oauth\OauthPlugin(
array(
* $client->addSubscriber(new Guzzle\Plugin\Oauth\OauthPlugin(
[
* 'consumer_key' => '***',
* 'consumer_key' => '***',
* 'consumer_secret' => '***',
* 'consumer_secret' => '***',
* 'token' => '***',
* 'token' => '***',
* 'token_secret' => '***'
* 'token_secret' => '***'
*
)
));
*
]
));
* });
* });
* ?>
* ?>
* ```
* ```
...
...
This diff is collapsed.
Click to expand it.
apps/basic/tests/functional/TestGuy.php
View file @
6e538ac6
...
@@ -832,7 +832,7 @@ class TestGuy extends \Codeception\AbstractGuy
...
@@ -832,7 +832,7 @@ class TestGuy extends \Codeception\AbstractGuy
*
*
* ``` php
* ``` php
* <?php
* <?php
* $I->submitForm('#login',
array('login' => 'davert', 'password' => '123456')
);
* $I->submitForm('#login',
['login' => 'davert', 'password' => '123456']
);
*
*
* ```
* ```
*
*
...
@@ -851,7 +851,7 @@ class TestGuy extends \Codeception\AbstractGuy
...
@@ -851,7 +851,7 @@ class TestGuy extends \Codeception\AbstractGuy
*
*
* ``` php
* ``` php
* <?php
* <?php
* $I->submitForm('#userForm',
array('user' => array('login' => 'Davert', 'password' => '123456', 'agree' => true))
);
* $I->submitForm('#userForm',
['user' => ['login' => 'Davert', 'password' => '123456', 'agree' => true]]
);
*
*
* ```
* ```
* Note, that pricing plan will be set to Paid, as it's selected on page.
* Note, that pricing plan will be set to Paid, as it's selected on page.
...
@@ -1042,8 +1042,8 @@ class TestGuy extends \Codeception\AbstractGuy
...
@@ -1042,8 +1042,8 @@ class TestGuy extends \Codeception\AbstractGuy
*
*
* ``` php
* ``` php
* <?php
* <?php
* $I->sendAjaxPostRequest('/updateSettings',
array('notifications' => true)
; // POST
* $I->sendAjaxPostRequest('/updateSettings',
['notifications' => true]
; // POST
* $I->sendAjaxGetRequest('/updateSettings',
array('notifications' => true)
; // GET
* $I->sendAjaxGetRequest('/updateSettings',
['notifications' => true]
; // GET
*
*
* ```
* ```
*
*
...
...
This diff is collapsed.
Click to expand it.
apps/basic/views/layouts/main.php
View file @
6e538ac6
...
@@ -14,8 +14,8 @@ app\config\AppAsset::register($this);
...
@@ -14,8 +14,8 @@ app\config\AppAsset::register($this);
<!DOCTYPE html>
<!DOCTYPE html>
<html
lang=
"en"
>
<html
lang=
"en"
>
<head>
<head>
<meta
charset=
"
<?=
Yii
::
$app
->
charset
;
?>
"
/>
<meta
charset=
"
<?=
Yii
::
$app
->
charset
?>
"
/>
<title>
<?=
Html
::
encode
(
$this
->
title
);
?>
</title>
<title>
<?=
Html
::
encode
(
$this
->
title
)
?>
</title>
<?php
$this
->
head
();
?>
<?php
$this
->
head
();
?>
</head>
</head>
<body>
<body>
...
@@ -48,13 +48,13 @@ app\config\AppAsset::register($this);
...
@@ -48,13 +48,13 @@ app\config\AppAsset::register($this);
<?=
Breadcrumbs
::
widget
([
<?=
Breadcrumbs
::
widget
([
'links'
=>
isset
(
$this
->
params
[
'breadcrumbs'
])
?
$this
->
params
[
'breadcrumbs'
]
:
[],
'links'
=>
isset
(
$this
->
params
[
'breadcrumbs'
])
?
$this
->
params
[
'breadcrumbs'
]
:
[],
]);
?>
]);
?>
<?=
$content
;
?>
<?=
$content
?>
</div>
</div>
<footer
class=
"footer"
>
<footer
class=
"footer"
>
<div
class=
"container"
>
<div
class=
"container"
>
<p
class=
"pull-left"
>
©
My Company
<?=
date
(
'Y'
);
?>
</p>
<p
class=
"pull-left"
>
©
My Company
<?=
date
(
'Y'
)
?>
</p>
<p
class=
"pull-right"
>
<?=
Yii
::
powered
();
?>
</p>
<p
class=
"pull-right"
>
<?=
Yii
::
powered
()
?>
</p>
</div>
</div>
</footer>
</footer>
...
...
This diff is collapsed.
Click to expand it.
apps/basic/views/site/about.php
View file @
6e538ac6
...
@@ -8,11 +8,11 @@ $this->title = 'About';
...
@@ -8,11 +8,11 @@ $this->title = 'About';
$this
->
params
[
'breadcrumbs'
][]
=
$this
->
title
;
$this
->
params
[
'breadcrumbs'
][]
=
$this
->
title
;
?>
?>
<div
class=
"site-about"
>
<div
class=
"site-about"
>
<h1>
<?=
Html
::
encode
(
$this
->
title
);
?>
</h1>
<h1>
<?=
Html
::
encode
(
$this
->
title
)
?>
</h1>
<p>
<p>
This is the About page. You may modify the following file to customize its content:
This is the About page. You may modify the following file to customize its content:
</p>
</p>
<code>
<?=
__FILE__
;
?>
</code>
<code>
<?=
__FILE__
?>
</code>
</div>
</div>
This diff is collapsed.
Click to expand it.
apps/basic/views/site/contact.php
View file @
6e538ac6
...
@@ -12,7 +12,7 @@ $this->title = 'Contact';
...
@@ -12,7 +12,7 @@ $this->title = 'Contact';
$this
->
params
[
'breadcrumbs'
][]
=
$this
->
title
;
$this
->
params
[
'breadcrumbs'
][]
=
$this
->
title
;
?>
?>
<div
class=
"site-contact"
>
<div
class=
"site-contact"
>
<h1>
<?=
Html
::
encode
(
$this
->
title
);
?>
</h1>
<h1>
<?=
Html
::
encode
(
$this
->
title
)
?>
</h1>
<?php
if
(
Yii
::
$app
->
session
->
hasFlash
(
'contactFormSubmitted'
))
:
?>
<?php
if
(
Yii
::
$app
->
session
->
hasFlash
(
'contactFormSubmitted'
))
:
?>
...
@@ -29,16 +29,16 @@ $this->params['breadcrumbs'][] = $this->title;
...
@@ -29,16 +29,16 @@ $this->params['breadcrumbs'][] = $this->title;
<div
class=
"row"
>
<div
class=
"row"
>
<div
class=
"col-lg-5"
>
<div
class=
"col-lg-5"
>
<?php
$form
=
ActiveForm
::
begin
([
'id'
=>
'contact-form'
]);
?>
<?php
$form
=
ActiveForm
::
begin
([
'id'
=>
'contact-form'
]);
?>
<?=
$form
->
field
(
$model
,
'name'
);
?>
<?=
$form
->
field
(
$model
,
'name'
)
?>
<?=
$form
->
field
(
$model
,
'email'
);
?>
<?=
$form
->
field
(
$model
,
'email'
)
?>
<?=
$form
->
field
(
$model
,
'subject'
);
?>
<?=
$form
->
field
(
$model
,
'subject'
)
?>
<?=
$form
->
field
(
$model
,
'body'
)
->
textArea
([
'rows'
=>
6
]);
?>
<?=
$form
->
field
(
$model
,
'body'
)
->
textArea
([
'rows'
=>
6
])
?>
<?=
$form
->
field
(
$model
,
'verifyCode'
)
->
widget
(
Captcha
::
className
(),
[
<?=
$form
->
field
(
$model
,
'verifyCode'
)
->
widget
(
Captcha
::
className
(),
[
'options'
=>
[
'class'
=>
'form-control'
],
'options'
=>
[
'class'
=>
'form-control'
],
'template'
=>
'<div class="row"><div class="col-lg-3">{image}</div><div class="col-lg-6">{input}</div></div>'
,
'template'
=>
'<div class="row"><div class="col-lg-3">{image}</div><div class="col-lg-6">{input}</div></div>'
,
]);
?>
]);
?>
<div
class=
"form-group"
>
<div
class=
"form-group"
>
<?=
Html
::
submitButton
(
'Submit'
,
[
'class'
=>
'btn btn-primary'
]);
?>
<?=
Html
::
submitButton
(
'Submit'
,
[
'class'
=>
'btn btn-primary'
])
?>
</div>
</div>
<?php
ActiveForm
::
end
();
?>
<?php
ActiveForm
::
end
();
?>
</div>
</div>
...
...
This diff is collapsed.
Click to expand it.
apps/basic/views/site/error.php
View file @
6e538ac6
...
@@ -13,10 +13,10 @@ $this->title = $name;
...
@@ -13,10 +13,10 @@ $this->title = $name;
?>
?>
<div
class=
"site-error"
>
<div
class=
"site-error"
>
<h1>
<?=
Html
::
encode
(
$this
->
title
);
?>
</h1>
<h1>
<?=
Html
::
encode
(
$this
->
title
)
?>
</h1>
<div
class=
"alert alert-danger"
>
<div
class=
"alert alert-danger"
>
<?=
nl2br
(
Html
::
encode
(
$message
));
?>
<?=
nl2br
(
Html
::
encode
(
$message
))
?>
</div>
</div>
<p>
<p>
...
...
This diff is collapsed.
Click to expand it.
apps/basic/views/site/login.php
View file @
6e538ac6
...
@@ -11,7 +11,7 @@ $this->title = 'Login';
...
@@ -11,7 +11,7 @@ $this->title = 'Login';
$this
->
params
[
'breadcrumbs'
][]
=
$this
->
title
;
$this
->
params
[
'breadcrumbs'
][]
=
$this
->
title
;
?>
?>
<div
class=
"site-login"
>
<div
class=
"site-login"
>
<h1>
<?=
Html
::
encode
(
$this
->
title
);
?>
</h1>
<h1>
<?=
Html
::
encode
(
$this
->
title
)
?>
</h1>
<p>
Please fill out the following fields to login:
</p>
<p>
Please fill out the following fields to login:
</p>
...
@@ -24,9 +24,9 @@ $this->params['breadcrumbs'][] = $this->title;
...
@@ -24,9 +24,9 @@ $this->params['breadcrumbs'][] = $this->title;
],
],
]);
?>
]);
?>
<?=
$form
->
field
(
$model
,
'username'
);
?>
<?=
$form
->
field
(
$model
,
'username'
)
?>
<?=
$form
->
field
(
$model
,
'password'
)
->
passwordInput
();
?>
<?=
$form
->
field
(
$model
,
'password'
)
->
passwordInput
()
?>
<?=
$form
->
field
(
$model
,
'rememberMe'
,
[
<?=
$form
->
field
(
$model
,
'rememberMe'
,
[
'template'
=>
"<div class=
\"
col-lg-offset-1 col-lg-3
\"
>
{
input
}
</div>
\n
<div class=
\"
col-lg-8
\"
>
{
error
}
</div>"
,
'template'
=>
"<div class=
\"
col-lg-offset-1 col-lg-3
\"
>
{
input
}
</div>
\n
<div class=
\"
col-lg-8
\"
>
{
error
}
</div>"
,
...
@@ -34,7 +34,7 @@ $this->params['breadcrumbs'][] = $this->title;
...
@@ -34,7 +34,7 @@ $this->params['breadcrumbs'][] = $this->title;
<div
class=
"form-group"
>
<div
class=
"form-group"
>
<div
class=
"col-lg-offset-1 col-lg-11"
>
<div
class=
"col-lg-offset-1 col-lg-11"
>
<?=
Html
::
submitButton
(
'Login'
,
[
'class'
=>
'btn btn-primary'
]);
?>
<?=
Html
::
submitButton
(
'Login'
,
[
'class'
=>
'btn btn-primary'
])
?>
</div>
</div>
</div>
</div>
...
...
This diff is collapsed.
Click to expand it.
docs/api/db/ActiveRecord.md
View file @
6e538ac6
...
@@ -175,7 +175,7 @@ class Customer extends \yii\db\ActiveRecord
...
@@ -175,7 +175,7 @@ class Customer extends \yii\db\ActiveRecord
{
{
public function getOrders()
public function getOrders()
{
{
return $this->hasMany(
'Order'
, ['customer_id' => 'id']);
return $this->hasMany(
Order::className()
, ['customer_id' => 'id']);
}
}
}
}
...
@@ -183,7 +183,7 @@ class Order extends \yii\db\ActiveRecord
...
@@ -183,7 +183,7 @@ class Order extends \yii\db\ActiveRecord
{
{
public function getCustomer()
public function getCustomer()
{
{
return $this->hasOne(
'Customer'
, ['id' => 'customer_id']);
return $this->hasOne(
Customer::className()
, ['id' => 'customer_id']);
}
}
}
}
~~~
~~~
...
@@ -194,8 +194,7 @@ a one-many relationship. For example, a customer has many orders. And the [[hasO
...
@@ -194,8 +194,7 @@ a one-many relationship. For example, a customer has many orders. And the [[hasO
method declares a many-one or one-one relationship. For example, an order has one customer.
method declares a many-one or one-one relationship. For example, an order has one customer.
Both methods take two parameters:
Both methods take two parameters:
-
`$class`
: the name of the class related models should use. If specified without
-
`$class`
: the name of the class that the related models should use.
a namespace, the namespace will be taken from the declaring class.
-
`$link`
: the association between columns from two tables. This should be given as an array.
-
`$link`
: the association between columns from two tables. This should be given as an array.
The keys of the array are the names of the columns from the table associated with
`$class`
,
The keys of the array are the names of the columns from the table associated with
`$class`
,
while the values of the array are the names of the columns from the declaring class.
while the values of the array are the names of the columns from the declaring class.
...
@@ -223,7 +222,7 @@ class Customer extends \yii\db\ActiveRecord
...
@@ -223,7 +222,7 @@ class Customer extends \yii\db\ActiveRecord
{
{
public function getBigOrders($threshold = 100)
public function getBigOrders($threshold = 100)
{
{
return $this->hasMany(
'Order'
, ['customer_id' => 'id'])
return $this->hasMany(
Order::className()
, ['customer_id' => 'id'])
->where('subtotal > :threshold', [':threshold' => $threshold])
->where('subtotal > :threshold', [':threshold' => $threshold])
->orderBy('id');
->orderBy('id');
}
}
...
@@ -244,7 +243,7 @@ class Order extends \yii\db\ActiveRecord
...
@@ -244,7 +243,7 @@ class Order extends \yii\db\ActiveRecord
{
{
public function getItems()
public function getItems()
{
{
return $this->hasMany(
'Item'
, ['id' => 'item_id'])
return $this->hasMany(
Item::className()
, ['id' => 'item_id'])
->viaTable('tbl_order_item', ['order_id' => 'id']);
->viaTable('tbl_order_item', ['order_id' => 'id']);
}
}
}
}
...
@@ -259,12 +258,12 @@ class Order extends \yii\db\ActiveRecord
...
@@ -259,12 +258,12 @@ class Order extends \yii\db\ActiveRecord
{
{
public function getOrderItems()
public function getOrderItems()
{
{
return $this->hasMany(
'OrderItem'
, ['order_id' => 'id']);
return $this->hasMany(
OrderItem::className()
, ['order_id' => 'id']);
}
}
public function getItems()
public function getItems()
{
{
return $this->hasMany(
'Item'
, ['id' => 'item_id'])
return $this->hasMany(
Item::className()
, ['id' => 'item_id'])
->via('orderItems');
->via('orderItems');
}
}
}
}
...
...
This diff is collapsed.
Click to expand it.
docs/guide/active-record.md
View file @
6e538ac6
...
@@ -202,7 +202,7 @@ class Customer extends \yii\db\ActiveRecord
...
@@ -202,7 +202,7 @@ class Customer extends \yii\db\ActiveRecord
{
{
public
function
getOrders
()
public
function
getOrders
()
{
{
return
$this
->
hasMany
(
'Order'
,
[
'customer_id'
=>
'id'
]);
return
$this
->
hasMany
(
Order
::
className
()
,
[
'customer_id'
=>
'id'
]);
}
}
}
}
...
@@ -210,7 +210,7 @@ class Order extends \yii\db\ActiveRecord
...
@@ -210,7 +210,7 @@ class Order extends \yii\db\ActiveRecord
{
{
public
function
getCustomer
()
public
function
getCustomer
()
{
{
return
$this
->
hasOne
(
'Customer'
,
[
'id'
=>
'customer_id'
]);
return
$this
->
hasOne
(
Customer
::
className
()
,
[
'id'
=>
'customer_id'
]);
}
}
}
}
```
```
...
@@ -257,7 +257,7 @@ class Customer extends \yii\db\ActiveRecord
...
@@ -257,7 +257,7 @@ class Customer extends \yii\db\ActiveRecord
{
{
public
function
getBigOrders
(
$threshold
=
100
)
public
function
getBigOrders
(
$threshold
=
100
)
{
{
return
$this
->
hasMany
(
'Order'
,
[
'customer_id'
=>
'id'
])
return
$this
->
hasMany
(
Order
::
className
()
,
[
'customer_id'
=>
'id'
])
->
where
(
'subtotal > :threshold'
,
[
':threshold'
=>
$threshold
])
->
where
(
'subtotal > :threshold'
,
[
':threshold'
=>
$threshold
])
->
orderBy
(
'id'
);
->
orderBy
(
'id'
);
}
}
...
@@ -291,7 +291,7 @@ class Order extends \yii\db\ActiveRecord
...
@@ -291,7 +291,7 @@ class Order extends \yii\db\ActiveRecord
{
{
public
function
getItems
()
public
function
getItems
()
{
{
return
$this
->
hasMany
(
'Item'
,
[
'id'
=>
'item_id'
])
return
$this
->
hasMany
(
Item
::
className
()
,
[
'id'
=>
'item_id'
])
->
viaTable
(
'tbl_order_item'
,
[
'order_id'
=>
'id'
]);
->
viaTable
(
'tbl_order_item'
,
[
'order_id'
=>
'id'
]);
}
}
}
}
...
@@ -306,12 +306,12 @@ class Order extends \yii\db\ActiveRecord
...
@@ -306,12 +306,12 @@ class Order extends \yii\db\ActiveRecord
{
{
public
function
getOrderItems
()
public
function
getOrderItems
()
{
{
return
$this
->
hasMany
(
'OrderItem'
,
[
'order_id'
=>
'id'
]);
return
$this
->
hasMany
(
OrderItem
::
className
()
,
[
'order_id'
=>
'id'
]);
}
}
public
function
getItems
()
public
function
getItems
()
{
{
return
$this
->
hasMany
(
'Item'
,
[
'id'
=>
'item_id'
])
return
$this
->
hasMany
(
Item
::
className
()
,
[
'id'
=>
'item_id'
])
->
via
(
'orderItems'
);
->
via
(
'orderItems'
);
}
}
}
}
...
@@ -517,7 +517,7 @@ class Feature extends \yii\db\ActiveRecord
...
@@ -517,7 +517,7 @@ class Feature extends \yii\db\ActiveRecord
public
function
getProduct
()
public
function
getProduct
()
{
{
return
$this
->
hasOne
(
'Product'
,
[
'product_id'
=>
'id'
]);
return
$this
->
hasOne
(
Product
::
className
()
,
[
'product_id'
=>
'id'
]);
}
}
}
}
...
@@ -527,7 +527,7 @@ class Product extends \yii\db\ActiveRecord
...
@@ -527,7 +527,7 @@ class Product extends \yii\db\ActiveRecord
public
function
getFeatures
()
public
function
getFeatures
()
{
{
return
$this
->
hasMany
(
'Feature'
,
[
'id'
=>
'product_id'
]);
return
$this
->
hasMany
(
Feature
::
className
()
,
[
'id'
=>
'product_id'
]);
}
}
}
}
```
```
...
@@ -566,7 +566,7 @@ class Feature extends \yii\db\ActiveRecord
...
@@ -566,7 +566,7 @@ class Feature extends \yii\db\ActiveRecord
public
function
getProduct
()
public
function
getProduct
()
{
{
return
$this
->
hasOne
(
'Product'
,
[
'product_id'
=>
'id'
]);
return
$this
->
hasOne
(
Product
::
className
()
,
[
'product_id'
=>
'id'
]);
}
}
public
function
scenarios
()
public
function
scenarios
()
...
@@ -586,7 +586,7 @@ class Product extends \yii\db\ActiveRecord
...
@@ -586,7 +586,7 @@ class Product extends \yii\db\ActiveRecord
public
function
getFeatures
()
public
function
getFeatures
()
{
{
return
$this
->
hasMany
(
'Feature'
,
[
'id'
=>
'product_id'
]);
return
$this
->
hasMany
(
Feature
::
className
()
,
[
'id'
=>
'product_id'
]);
}
}
public
function
scenarios
()
public
function
scenarios
()
...
...
This diff is collapsed.
Click to expand it.
docs/guide/i18n.md
View file @
6e538ac6
...
@@ -205,7 +205,7 @@ Will produce "You are 42nd visitor here!".
...
@@ -205,7 +205,7 @@ Will produce "You are 42nd visitor here!".
```php
```php
echo \Yii::t('app', 'You are here for {n, duration} already!', ['n' => 4
2
]);
echo \Yii::t('app', 'You are here for {n, duration} already!', ['n' => 4
7
]);
```
```
Will produce "You are here for 47 sec. already!".
Will produce "You are here for 47 sec. already!".
...
...
This diff is collapsed.
Click to expand it.
docs/guide/installation.md
View file @
6e538ac6
...
@@ -83,57 +83,28 @@ Yii to catch all requests to nonexistent files, which allows us to have nice-loo
...
@@ -83,57 +83,28 @@ Yii to catch all requests to nonexistent files, which allows us to have nice-loo
~~~
~~~
server {
server {
set $host_path "/www/mysite";
access_log /www/mysite/log/access.log main;
server_name mysite;
root $host_path/htdocs;
set $yii_bootstrap "index.php";
charset utf-8;
charset utf-8;
location / {
listen 80;
index index.html $yii_bootstrap;
server_name mysite.local;
try_files $uri $uri/ /$yii_bootstrap?$args;
root /path/to/project/webroot/directory
}
location ~ ^/(protected|framework|themes/\w+/views) {
access_log /path/to/project/log/access.log main;
deny all;
}
#avoid processing of calls to unexisting static files by yii
location / {
location ~ \.(js|css|png|jpg|gif|swf|ico|pdf|mov|fla|zip|rar)$ {
try_files $uri $uri/ /index.php?$args; # Redirect everything that isn't real file to index.php including arguments.
try_files $uri =404;
}
}
# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
location ~ \.php$ {
#
include fastcgi.conf;
location ~ \.php {
fastcgi_split_path_info ^(.+\.php)(.*)$;
#let yii catch the calls to unexising PHP files
set $fsn /$yii_bootstrap;
if (-f $document_root$fastcgi_script_name){
set $fsn $fastcgi_script_name;
}
#for php-cgi
fastcgi_pass 127.0.0.1:9000;
fastcgi_pass 127.0.0.1:9000;
#for php-fpm
#fastcgi_pass unix:/var/run/php5-fpm.sock;
#fastcgi_pass unix:/var/run/php5-fpm.sock;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fsn;
#PATH_INFO and PATH_TRANSLATED can be omitted, but RFC 3875 specifies them for CGI
fastcgi_param PATH_INFO $fastcgi_path_info;
fastcgi_param PATH_TRANSLATED $document_root$fsn;
}
}
location ~ /\.
ht
{
location ~ /\.
(ht|svn|git)
{
deny
all;
deny all;
}
}
}
}
~~~
~~~
Using this configuration you can set
`cgi.fix_pathinfo=0`
in php.ini to avoid
Make sure to set
`cgi.fix_pathinfo=0`
in php.ini to avoid many unnecessary system
`stat()`
calls.
many unnecessary system
`stat()`
calls.
This diff is collapsed.
Click to expand it.
docs/guide/upgrade-from-v1.md
View file @
6e538ac6
...
@@ -340,10 +340,10 @@ It is represented as an `ActiveField` object. Using fields, you can build a form
...
@@ -340,10 +340,10 @@ It is represented as an `ActiveField` object. Using fields, you can build a form
```
php
```
php
<?php
$form
=
yii\widgets\ActiveForm
::
begin
();
?>
<?php
$form
=
yii\widgets\ActiveForm
::
begin
();
?>
<?=
$form
->
field
(
$model
,
'username'
);
?>
<?=
$form
->
field
(
$model
,
'username'
)
?>
<?=
$form
->
field
(
$model
,
'password'
)
->
passwordInput
();
?>
<?=
$form
->
field
(
$model
,
'password'
)
->
passwordInput
()
?>
<div
class=
"form-group"
>
<div
class=
"form-group"
>
<?=
Html
::
submitButton
(
'Login'
);
?>
<?=
Html
::
submitButton
(
'Login'
)
?>
</div>
</div>
<?php
yii\widgets\ActiveForm
::
end
();
?>
<?php
yii\widgets\ActiveForm
::
end
();
?>
```
```
...
...
This diff is collapsed.
Click to expand it.
docs/guide/url.md
View file @
6e538ac6
URL Management
URL Management
==============
==============
The concept of URL management in Yii fairly simple. The idea is that application uses internal routes and parameters
everywhere. Framework takes care of translating routes into URLs and back according to URL manager configuration.
This approach allows you to adjust URLs in a single config file without touching application code.
Internal route
--------------
Internal routes and parameters are what you're dealing with when implementing an application using Yii.
Each controller and its action has a corresponding internal route such as
`site/index`
. Here
`site`
is referred to as
controller ID while
`index`
is referred to as action ID. If controller belongs to a module, internal route is prefixed
with the module ID such as
`blog/post/index`
for a blog module.
Creating URLs
-------------
As was already mentioned, the most important rule is to always use URL manager to create URLs. Url manages is an
application component with
`urlManager`
id that is accessible both from web and console applications via
`\Yii::$app->urlManager`
and has two following URL creation methods available:
-
createUrl($route, $params =
[
])
-
createAbsoluteUrl($route, $params =
[
])
First one creates URL relative to the application root while the second one creates URL prefixed with protocol and
hostname. The former is suitable for internal application URLs while the latter is used when you need to create rules
for outside the website. For example, when sending emails or generating RSS feed.
Some examples:
```
php
echo
\Yii
::
$app
->
urlManager
->
createUrl
(
'site/page'
,
[
'id'
=>
'about'
]);
echo
\Yii
::
$app
->
urlManager
->
createAbsoluteUrl
(
'blog/post/index'
);
```
Inside web application controller you can use its own
`createUrl`
shortcut method in the following forms:
```
php
echo
$this
->
createUrl
(
''
);
// currently active route
echo
$this
->
createUrl
(
'view'
,
[
'id'
=>
'contact'
]);
// same controller, different action
echo
$this
->
createUrl
(
'post/index'
);
// same module, different controller and action
echo
$this
->
createUrl
(
'/site/index'
);
// absolute route no matter which controller we're in
```
> **Tip**: In order to generate URL with a hashtag, for example `/index.php?r=site/page&id=100#title`, you need to
specify parameter named
`#`
using
`$this->createUrl('post/read', ['id' => 100, '#' => 'title'])`
.
Customizing URLs
----------------
By default Yii uses a query string format URLs such as
`/index.php?r=news/view&id=100`
. In order to make URLs
human-friendly you need to configure
`urlManager`
component like the following:
```
php
<?php
return
[
// ...
'components'
=>
[
'urlManager'
=>
[
'enablePrettyUrl'
=>
true
,
'showScriptName'
=>
false
,
],
],
];
```
Note that
### Named parameters
### Handling subdomains
### Faking URL Suffix
```
php
<?php
return
[
// ...
'components'
=>
[
'urlManager'
=>
[
'suffix'
=>
'.html'
,
],
],
];
```
### Handling REST
URL parsing
-----------
Complimentary to creating URLs Yii is handling transforming custom URLs back into internal route and parameters.
### Strict URL parsing
By default if there's no custom rule for URL and URL matches default format such as
`/site/page`
Yii tries to run a
corresponding controller's action. This behavior could be disabled so if there's no custom rule match, a 404 not found
error will be produced immediately.
```
php
<?php
return
[
// ...
'components'
=>
[
'urlManager'
=>
[
'enableStrictParsing'
=>
true
,
],
],
];
```
Creating your own rule classes
------------------------------
This diff is collapsed.
Click to expand it.
docs/guide/view.md
View file @
6e538ac6
...
@@ -76,7 +76,7 @@ use yii\helpers\Html;
...
@@ -76,7 +76,7 @@ use yii\helpers\Html;
?>
?>
<div
class=
"username"
>
<div
class=
"username"
>
<?=
Html
::
encode
(
$user
->
name
);
?>
<?=
Html
::
encode
(
$user
->
name
)
?>
</div>
</div>
```
```
...
@@ -97,7 +97,7 @@ use yii\helpers\HtmlPurifier;
...
@@ -97,7 +97,7 @@ use yii\helpers\HtmlPurifier;
?>
?>
<div
class=
"post"
>
<div
class=
"post"
>
<?=
HtmlPurifier
::
process
(
$post
->
text
);
?>
<?=
HtmlPurifier
::
process
(
$post
->
text
)
?>
</div>
</div>
```
```
...
@@ -256,16 +256,16 @@ use yii\helpers\Html;
...
@@ -256,16 +256,16 @@ use yii\helpers\Html;
?>
?>
<?php
$this
->
beginPage
();
?>
<?php
$this
->
beginPage
();
?>
<!DOCTYPE html>
<!DOCTYPE html>
<html
lang=
"
<?=
Yii
::
$app
->
charset
;
?>
"
>
<html
lang=
"
<?=
Yii
::
$app
->
charset
?>
"
>
<head>
<head>
<meta
charset=
"
<?=
Yii
::
$app
->
charset
;
?>
"
/>
<meta
charset=
"
<?=
Yii
::
$app
->
charset
?>
"
/>
<title>
<?=
Html
::
encode
(
$this
->
title
);
?>
</title>
<title>
<?=
Html
::
encode
(
$this
->
title
)
?>
</title>
<?php
$this
->
head
();
?>
<?php
$this
->
head
();
?>
</head>
</head>
<body>
<body>
<?php
$this
->
beginBody
();
?>
<?php
$this
->
beginBody
();
?>
<div
class=
"container"
>
<div
class=
"container"
>
<?=
$content
;
?>
<?=
$content
?>
</div>
</div>
<footer
class=
"footer"
>
© 2013 me :)
</footer>
<footer
class=
"footer"
>
© 2013 me :)
</footer>
<?php
$this
->
endBody
();
?>
<?php
$this
->
endBody
();
?>
...
@@ -295,8 +295,8 @@ use yii\helpers\Html;
...
@@ -295,8 +295,8 @@ use yii\helpers\Html;
?>
?>
<div
class=
"profile"
>
<div
class=
"profile"
>
<h2>
<?=
Html
::
encode
(
$username
);
?>
</h2>
<h2>
<?=
Html
::
encode
(
$username
)
?>
</h2>
<p>
<?=
Html
::
encode
(
$tagline
);
?>
</p>
<p>
<?=
Html
::
encode
(
$tagline
)
?>
</p>
</div>
</div>
```
```
...
...
This diff is collapsed.
Click to expand it.
extensions/composer/yii/composer/Installer.php
View file @
6e538ac6
...
@@ -31,7 +31,7 @@ class Installer extends LibraryInstaller
...
@@ -31,7 +31,7 @@ class Installer extends LibraryInstaller
*/
*/
public
function
supports
(
$packageType
)
public
function
supports
(
$packageType
)
{
{
return
$packageType
===
'yii-extension'
;
return
$packageType
===
'yii
2
-extension'
;
}
}
/**
/**
...
@@ -65,7 +65,7 @@ class Installer extends LibraryInstaller
...
@@ -65,7 +65,7 @@ class Installer extends LibraryInstaller
protected
function
addPackage
(
PackageInterface
$package
)
protected
function
addPackage
(
PackageInterface
$package
)
{
{
$extension
=
[
$extension
=
[
'name'
=>
$package
->
get
Pretty
Name
(),
'name'
=>
$package
->
getName
(),
'version'
=>
$package
->
getVersion
(),
'version'
=>
$package
->
getVersion
(),
];
];
...
@@ -76,14 +76,14 @@ class Installer extends LibraryInstaller
...
@@ -76,14 +76,14 @@ class Installer extends LibraryInstaller
}
}
$extensions
=
$this
->
loadExtensions
();
$extensions
=
$this
->
loadExtensions
();
$extensions
[
$package
->
get
Unique
Name
()]
=
$extension
;
$extensions
[
$package
->
getName
()]
=
$extension
;
$this
->
saveExtensions
(
$extensions
);
$this
->
saveExtensions
(
$extensions
);
}
}
protected
function
removePackage
(
PackageInterface
$package
)
protected
function
removePackage
(
PackageInterface
$package
)
{
{
$packages
=
$this
->
loadExtensions
();
$packages
=
$this
->
loadExtensions
();
unset
(
$packages
[
$package
->
get
Unique
Name
()]);
unset
(
$packages
[
$package
->
getName
()]);
$this
->
saveExtensions
(
$packages
);
$this
->
saveExtensions
(
$packages
);
}
}
...
...
This diff is collapsed.
Click to expand it.
extensions/composer/yii/composer/InstallerPlugin.php
View file @
6e538ac6
...
@@ -28,7 +28,7 @@ class InstallerPlugin implements PluginInterface
...
@@ -28,7 +28,7 @@ class InstallerPlugin implements PluginInterface
$composer
->
getInstallationManager
()
->
addInstaller
(
$installer
);
$composer
->
getInstallationManager
()
->
addInstaller
(
$installer
);
$file
=
rtrim
(
$composer
->
getConfig
()
->
get
(
'vendor-dir'
),
'/'
)
.
'/yii-extensions.php'
;
$file
=
rtrim
(
$composer
->
getConfig
()
->
get
(
'vendor-dir'
),
'/'
)
.
'/yii-extensions.php'
;
if
(
!
is_file
(
$file
))
{
if
(
!
is_file
(
$file
))
{
file_put_contents
(
$file
,
"<?php
\n
return
array()
;
\n
"
);
file_put_contents
(
$file
,
"<?php
\n
return
[]
;
\n
"
);
}
}
}
}
}
}
This diff is collapsed.
Click to expand it.
extensions/jui/composer.json
View file @
6e538ac6
...
@@ -2,7 +2,7 @@
...
@@ -2,7 +2,7 @@
"name"
:
"yiisoft/yii2-jui"
,
"name"
:
"yiisoft/yii2-jui"
,
"description"
:
"The Jquery UI extension for the Yii framework"
,
"description"
:
"The Jquery UI extension for the Yii framework"
,
"keywords"
:
[
"yii"
,
"Jquery UI"
,
"renderer"
],
"keywords"
:
[
"yii"
,
"Jquery UI"
,
"renderer"
],
"type"
:
"yii-extension"
,
"type"
:
"yii
2
-extension"
,
"license"
:
"BSD-3-Clause"
,
"license"
:
"BSD-3-Clause"
,
"support"
:
{
"support"
:
{
"issues"
:
"https://github.com/yiisoft/yii2/issues?state=open"
,
"issues"
:
"https://github.com/yiisoft/yii2/issues?state=open"
,
...
...
This diff is collapsed.
Click to expand it.
extensions/mutex/composer.json
View file @
6e538ac6
...
@@ -2,7 +2,7 @@
...
@@ -2,7 +2,7 @@
"name"
:
"yiisoft/yii2-mutex"
,
"name"
:
"yiisoft/yii2-mutex"
,
"description"
:
"Mutual exclusion extension for the Yii framework"
,
"description"
:
"Mutual exclusion extension for the Yii framework"
,
"keywords"
:
[
"yii"
,
"mutex"
],
"keywords"
:
[
"yii"
,
"mutex"
],
"type"
:
"yii-extension"
,
"type"
:
"yii
2
-extension"
,
"license"
:
"BSD-3-Clause"
,
"license"
:
"BSD-3-Clause"
,
"support"
:
{
"support"
:
{
"issues"
:
"https://github.com/yiisoft/yii2/issues?state=open"
,
"issues"
:
"https://github.com/yiisoft/yii2/issues?state=open"
,
...
...
This diff is collapsed.
Click to expand it.
extensions/smarty/composer.json
View file @
6e538ac6
...
@@ -2,7 +2,7 @@
...
@@ -2,7 +2,7 @@
"name"
:
"yiisoft/yii2-smarty"
,
"name"
:
"yiisoft/yii2-smarty"
,
"description"
:
"The Smarty integration for the Yii framework"
,
"description"
:
"The Smarty integration for the Yii framework"
,
"keywords"
:
[
"yii"
,
"smarty"
,
"renderer"
],
"keywords"
:
[
"yii"
,
"smarty"
,
"renderer"
],
"type"
:
"yii-extension"
,
"type"
:
"yii
2
-extension"
,
"license"
:
"BSD-3-Clause"
,
"license"
:
"BSD-3-Clause"
,
"support"
:
{
"support"
:
{
"issues"
:
"https://github.com/yiisoft/yii2/issues?state=open"
,
"issues"
:
"https://github.com/yiisoft/yii2/issues?state=open"
,
...
@@ -13,7 +13,7 @@
...
@@ -13,7 +13,7 @@
},
},
"authors"
:
[
"authors"
:
[
{
{
"name"
:
"Ale
nxa
der Makarov"
,
"name"
:
"Ale
xan
der Makarov"
,
"email"
:
"sam@rmcreative.ru"
"email"
:
"sam@rmcreative.ru"
}
}
],
],
...
...
This diff is collapsed.
Click to expand it.
extensions/twig/composer.json
View file @
6e538ac6
...
@@ -2,7 +2,7 @@
...
@@ -2,7 +2,7 @@
"name"
:
"yiisoft/yii2-twig"
,
"name"
:
"yiisoft/yii2-twig"
,
"description"
:
"The Twig integration for the Yii framework"
,
"description"
:
"The Twig integration for the Yii framework"
,
"keywords"
:
[
"yii"
,
"twig"
,
"renderer"
],
"keywords"
:
[
"yii"
,
"twig"
,
"renderer"
],
"type"
:
"yii-extension"
,
"type"
:
"yii
2
-extension"
,
"license"
:
"BSD-3-Clause"
,
"license"
:
"BSD-3-Clause"
,
"support"
:
{
"support"
:
{
"issues"
:
"https://github.com/yiisoft/yii2/issues?state=open"
,
"issues"
:
"https://github.com/yiisoft/yii2/issues?state=open"
,
...
@@ -13,7 +13,7 @@
...
@@ -13,7 +13,7 @@
},
},
"authors"
:
[
"authors"
:
[
{
{
"name"
:
"Ale
nxa
der Makarov"
,
"name"
:
"Ale
xan
der Makarov"
,
"email"
:
"sam@rmcreative.ru"
"email"
:
"sam@rmcreative.ru"
}
}
],
],
...
...
This diff is collapsed.
Click to expand it.
framework/yii/BaseYii.php
View file @
6e538ac6
...
@@ -335,8 +335,7 @@ class BaseYii
...
@@ -335,8 +335,7 @@ class BaseYii
include
(
$classFile
);
include
(
$classFile
);
if
(
YII_DEBUG
&&
!
class_exists
(
$className
,
false
)
&&
!
interface_exists
(
$className
,
false
)
&&
if
(
YII_DEBUG
&&
!
class_exists
(
$className
,
false
)
&&
!
interface_exists
(
$className
,
false
)
&&
!
trait_exists
(
$className
,
false
))
{
(
!
function_exists
(
'trait_exists'
)
||
!
trait_exists
(
$className
,
false
)))
{
throw
new
UnknownClassException
(
"Unable to find '
$className
' in file:
$classFile
"
);
throw
new
UnknownClassException
(
"Unable to find '
$className
' in file:
$classFile
"
);
}
}
}
}
...
...
This diff is collapsed.
Click to expand it.
framework/yii/base/Application.php
View file @
6e538ac6
...
@@ -54,6 +54,13 @@ abstract class Application extends Module
...
@@ -54,6 +54,13 @@ abstract class Application extends Module
* @event ActionEvent an event raised after executing a controller action.
* @event ActionEvent an event raised after executing a controller action.
*/
*/
const
EVENT_AFTER_ACTION
=
'afterAction'
;
const
EVENT_AFTER_ACTION
=
'afterAction'
;
/**
* @var string the namespace that controller classes are in. If not set,
* it will use the "app\controllers" namespace.
*/
public
$controllerNamespace
=
'app\\controllers'
;
/**
/**
* @var string the application name.
* @var string the application name.
*/
*/
...
@@ -121,7 +128,7 @@ abstract class Application extends Module
...
@@ -121,7 +128,7 @@ abstract class Application extends Module
* ]
* ]
* ~~~
* ~~~
*/
*/
public
$extensions
=
array
()
;
public
$extensions
=
[]
;
/**
/**
* @var string Used to reserve memory for fatal error handler.
* @var string Used to reserve memory for fatal error handler.
...
@@ -137,18 +144,8 @@ abstract class Application extends Module
...
@@ -137,18 +144,8 @@ abstract class Application extends Module
public
function
__construct
(
$config
=
[])
public
function
__construct
(
$config
=
[])
{
{
Yii
::
$app
=
$this
;
Yii
::
$app
=
$this
;
if
(
!
isset
(
$config
[
'id'
]))
{
throw
new
InvalidConfigException
(
'The "id" configuration is required.'
);
}
if
(
isset
(
$config
[
'basePath'
]))
{
$this
->
setBasePath
(
$config
[
'basePath'
]);
unset
(
$config
[
'basePath'
]);
}
else
{
throw
new
InvalidConfigException
(
'The "basePath" configuration is required.'
);
}
$this
->
preInit
(
$config
);
$this
->
preInit
(
$config
);
$this
->
registerErrorHandlers
();
$this
->
registerErrorHandlers
();
$this
->
registerCoreComponents
();
$this
->
registerCoreComponents
();
...
@@ -158,10 +155,23 @@ abstract class Application extends Module
...
@@ -158,10 +155,23 @@ abstract class Application extends Module
/**
/**
* Pre-initializes the application.
* Pre-initializes the application.
* This method is called at the beginning of the application constructor.
* This method is called at the beginning of the application constructor.
* It initializes several important application properties.
* If you override this method, please make sure you call the parent implementation.
* @param array $config the application configuration
* @param array $config the application configuration
* @throws InvalidConfigException if either [[id]] or [[basePath]] configuration is missing.
*/
*/
public
function
preInit
(
&
$config
)
public
function
preInit
(
&
$config
)
{
{
if
(
!
isset
(
$config
[
'id'
]))
{
throw
new
InvalidConfigException
(
'The "id" configuration is required.'
);
}
if
(
isset
(
$config
[
'basePath'
]))
{
$this
->
setBasePath
(
$config
[
'basePath'
]);
unset
(
$config
[
'basePath'
]);
}
else
{
throw
new
InvalidConfigException
(
'The "basePath" configuration is required.'
);
}
if
(
isset
(
$config
[
'vendorPath'
]))
{
if
(
isset
(
$config
[
'vendorPath'
]))
{
$this
->
setVendorPath
(
$config
[
'vendorPath'
]);
$this
->
setVendorPath
(
$config
[
'vendorPath'
]);
unset
(
$config
[
'vendorPath'
]);
unset
(
$config
[
'vendorPath'
]);
...
@@ -176,6 +186,7 @@ abstract class Application extends Module
...
@@ -176,6 +186,7 @@ abstract class Application extends Module
// set "@runtime"
// set "@runtime"
$this
->
getRuntimePath
();
$this
->
getRuntimePath
();
}
}
if
(
isset
(
$config
[
'timeZone'
]))
{
if
(
isset
(
$config
[
'timeZone'
]))
{
$this
->
setTimeZone
(
$config
[
'timeZone'
]);
$this
->
setTimeZone
(
$config
[
'timeZone'
]);
unset
(
$config
[
'timeZone'
]);
unset
(
$config
[
'timeZone'
]);
...
@@ -185,6 +196,31 @@ abstract class Application extends Module
...
@@ -185,6 +196,31 @@ abstract class Application extends Module
}
}
/**
/**
* @inheritdoc
*/
public
function
init
()
{
parent
::
init
();
$this
->
initExtensions
(
$this
->
extensions
);
}
/**
* Initializes the extensions.
* @param array $extensions the extensions to be initialized. Please refer to [[extensions]]
* for the structure of the extension array.
*/
protected
function
initExtensions
(
$extensions
)
{
foreach
(
$extensions
as
$extension
)
{
if
(
isset
(
$extension
[
'bootstrap'
]))
{
/** @var Extension $class */
$class
=
$extension
[
'bootstrap'
];
$class
::
init
();
}
}
}
/**
* Loads components that are declared in [[preload]].
* Loads components that are declared in [[preload]].
* @throws InvalidConfigException if a component or module to be preloaded is unknown
* @throws InvalidConfigException if a component or module to be preloaded is unknown
*/
*/
...
@@ -221,6 +257,18 @@ abstract class Application extends Module
...
@@ -221,6 +257,18 @@ abstract class Application extends Module
}
}
/**
/**
* Sets the root directory of the applicaition and the @app alias.
* This method can only be invoked at the beginning of the constructor.
* @param string $path the root directory of the application.
* @throws InvalidParamException if the directory does not exist.
*/
public
function
setBasePath
(
$path
)
{
parent
::
setBasePath
(
$path
);
Yii
::
setAlias
(
'@app'
,
$this
->
getBasePath
());
}
/**
* Runs the application.
* Runs the application.
* This is the main entrance of an application.
* This is the main entrance of an application.
* @return integer the exit status (0 means normal, non-zero values mean abnormal)
* @return integer the exit status (0 means normal, non-zero values mean abnormal)
...
...
This diff is collapsed.
Click to expand it.
framework/yii/base/Extension.php
View file @
6e538ac6
...
@@ -8,11 +8,21 @@
...
@@ -8,11 +8,21 @@
namespace
yii\base
;
namespace
yii\base
;
/**
/**
* Extension is the base class that may be extended by individual extensions.
*
* Extension serves as the bootstrap class for extensions. When an extension
* is installed via composer, the [[init()]] method of its Extension class (if any)
* will be invoked during the application initialization stage.
*
* @author Qiang Xue <qiang.xue@gmail.com>
* @author Qiang Xue <qiang.xue@gmail.com>
* @since 2.0
* @since 2.0
*/
*/
class
Extension
class
Extension
{
{
/**
* Initializes the extension.
* This method is invoked at the end of [[Application::init()]].
*/
public
static
function
init
()
public
static
function
init
()
{
{
}
}
...
...
This diff is collapsed.
Click to expand it.
framework/yii/base/Module.php
View file @
6e538ac6
...
@@ -83,7 +83,6 @@ abstract class Module extends Component
...
@@ -83,7 +83,6 @@ abstract class Module extends Component
* it will use the "controllers" sub-namespace under the namespace of this module.
* it will use the "controllers" sub-namespace under the namespace of this module.
* For example, if the namespace of this module is "foo\bar", then the default
* For example, if the namespace of this module is "foo\bar", then the default
* controller namespace would be "foo\bar\controllers".
* controller namespace would be "foo\bar\controllers".
* If the module is an application, it will default to "app\controllers".
*/
*/
public
$controllerNamespace
;
public
$controllerNamespace
;
/**
/**
...
@@ -167,22 +166,20 @@ abstract class Module extends Component
...
@@ -167,22 +166,20 @@ abstract class Module extends Component
/**
/**
* Initializes the module.
* Initializes the module.
* This method is called after the module is created and initialized with property values
* This method is called after the module is created and initialized with property values
* given in configuration. The default implement will create a path alias using the module [[id]]
* given in configuration. The default implement
ation
will create a path alias using the module [[id]]
* and then call [[preloadComponents()]] to load components that are declared in [[preload]].
* and then call [[preloadComponents()]] to load components that are declared in [[preload]].
*
* If you override this method, please make sure you call the parent implementation.
*/
*/
public
function
init
()
public
function
init
()
{
{
$this
->
preloadComponents
();
if
(
$this
->
controllerNamespace
===
null
)
{
if
(
$this
->
controllerNamespace
===
null
)
{
if
(
$this
instanceof
Application
)
{
$class
=
get_class
(
$this
);
$this
->
controllerNamespace
=
'app\\controllers'
;
if
((
$pos
=
strrpos
(
$class
,
'\\'
))
!==
false
)
{
}
else
{
$this
->
controllerNamespace
=
substr
(
$class
,
0
,
$pos
)
.
'\\controllers'
;
$class
=
get_class
(
$this
);
if
((
$pos
=
strrpos
(
$class
,
'\\'
))
!==
false
)
{
$this
->
controllerNamespace
=
substr
(
$class
,
0
,
$pos
)
.
'\\controllers'
;
}
}
}
}
}
$this
->
preloadComponents
();
}
}
/**
/**
...
@@ -221,9 +218,6 @@ abstract class Module extends Component
...
@@ -221,9 +218,6 @@ abstract class Module extends Component
$p
=
realpath
(
$path
);
$p
=
realpath
(
$path
);
if
(
$p
!==
false
&&
is_dir
(
$p
))
{
if
(
$p
!==
false
&&
is_dir
(
$p
))
{
$this
->
_basePath
=
$p
;
$this
->
_basePath
=
$p
;
if
(
$this
instanceof
Application
)
{
Yii
::
setAlias
(
'@app'
,
$p
);
}
}
else
{
}
else
{
throw
new
InvalidParamException
(
"The directory does not exist:
$path
"
);
throw
new
InvalidParamException
(
"The directory does not exist:
$path
"
);
}
}
...
...
This diff is collapsed.
Click to expand it.
framework/yii/base/View.php
View file @
6e538ac6
...
@@ -540,7 +540,7 @@ class View extends Component
...
@@ -540,7 +540,7 @@ class View extends Component
/**
/**
* Registers all files provided by an asset bundle including depending bundles files.
* Registers all files provided by an asset bundle including depending bundles files.
* Removes a bundle from [[assetBundles]] once registered.
* Removes a bundle from [[assetBundles]] once
files are
registered.
* @param string $name name of the bundle to register
* @param string $name name of the bundle to register
*/
*/
private
function
registerAssetFiles
(
$name
)
private
function
registerAssetFiles
(
$name
)
...
@@ -552,7 +552,7 @@ class View extends Component
...
@@ -552,7 +552,7 @@ class View extends Component
foreach
(
$bundle
->
depends
as
$dep
)
{
foreach
(
$bundle
->
depends
as
$dep
)
{
$this
->
registerAssetFiles
(
$dep
);
$this
->
registerAssetFiles
(
$dep
);
}
}
$bundle
->
registerAssets
(
$this
);
$bundle
->
registerAsset
File
s
(
$this
);
unset
(
$this
->
assetBundles
[
$name
]);
unset
(
$this
->
assetBundles
[
$name
]);
}
}
...
...
This diff is collapsed.
Click to expand it.
framework/yii/db/ActiveRecord.php
View file @
6e538ac6
...
@@ -456,7 +456,7 @@ class ActiveRecord extends Model
...
@@ -456,7 +456,7 @@ class ActiveRecord extends Model
* ~~~
* ~~~
* public function getCountry()
* public function getCountry()
* {
* {
* return $this->hasOne(
'Country'
, ['id' => 'country_id']);
* return $this->hasOne(
Country::className()
, ['id' => 'country_id']);
* }
* }
* ~~~
* ~~~
*
*
...
@@ -475,7 +475,7 @@ class ActiveRecord extends Model
...
@@ -475,7 +475,7 @@ class ActiveRecord extends Model
public
function
hasOne
(
$class
,
$link
)
public
function
hasOne
(
$class
,
$link
)
{
{
return
new
ActiveRelation
([
return
new
ActiveRelation
([
'modelClass'
=>
$
this
->
getNamespacedClass
(
$class
)
,
'modelClass'
=>
$
class
,
'primaryModel'
=>
$this
,
'primaryModel'
=>
$this
,
'link'
=>
$link
,
'link'
=>
$link
,
'multiple'
=>
false
,
'multiple'
=>
false
,
...
@@ -496,7 +496,7 @@ class ActiveRecord extends Model
...
@@ -496,7 +496,7 @@ class ActiveRecord extends Model
* ~~~
* ~~~
* public function getOrders()
* public function getOrders()
* {
* {
* return $this->hasMany(
'Order'
, ['customer_id' => 'id']);
* return $this->hasMany(
Order::className()
, ['customer_id' => 'id']);
* }
* }
* ~~~
* ~~~
*
*
...
@@ -513,7 +513,7 @@ class ActiveRecord extends Model
...
@@ -513,7 +513,7 @@ class ActiveRecord extends Model
public
function
hasMany
(
$class
,
$link
)
public
function
hasMany
(
$class
,
$link
)
{
{
return
new
ActiveRelation
([
return
new
ActiveRelation
([
'modelClass'
=>
$
this
->
getNamespacedClass
(
$class
)
,
'modelClass'
=>
$
class
,
'primaryModel'
=>
$this
,
'primaryModel'
=>
$this
,
'link'
=>
$link
,
'link'
=>
$link
,
'multiple'
=>
true
,
'multiple'
=>
true
,
...
@@ -1439,24 +1439,6 @@ class ActiveRecord extends Model
...
@@ -1439,24 +1439,6 @@ class ActiveRecord extends Model
}
}
/**
/**
* Changes the given class name into a namespaced one.
* If the given class name is already namespaced, no change will be made.
* Otherwise, the class name will be changed to use the same namespace as
* the current AR class.
* @param string $class the class name to be namespaced
* @return string the namespaced class name
*/
protected
static
function
getNamespacedClass
(
$class
)
{
if
(
strpos
(
$class
,
'\\'
)
===
false
)
{
$reflector
=
new
\ReflectionClass
(
static
::
className
());
return
$reflector
->
getNamespaceName
()
.
'\\'
.
$class
;
}
else
{
return
$class
;
}
}
/**
* @param array $link
* @param array $link
* @param ActiveRecord $foreignModel
* @param ActiveRecord $foreignModel
* @param ActiveRecord $primaryModel
* @param ActiveRecord $primaryModel
...
...
This diff is collapsed.
Click to expand it.
framework/yii/debug/views/default/index.php
View file @
6e538ac6
...
@@ -32,11 +32,11 @@ $this->title = 'Yii Debugger';
...
@@ -32,11 +32,11 @@ $this->title = 'Yii Debugger';
<tbody>
<tbody>
<?php
foreach
(
$manifest
as
$tag
=>
$data
)
:
?>
<?php
foreach
(
$manifest
as
$tag
=>
$data
)
:
?>
<tr>
<tr>
<td>
<?=
Html
::
a
(
$tag
,
[
'view'
,
'tag'
=>
$tag
]);
?>
</td>
<td>
<?=
Html
::
a
(
$tag
,
[
'view'
,
'tag'
=>
$tag
])
?>
</td>
<td>
<?=
date
(
'Y-m-d h:i:sa'
,
$data
[
'time'
]);
?>
</td>
<td>
<?=
date
(
'Y-m-d h:i:sa'
,
$data
[
'time'
])
?>
</td>
<td>
<?=
$data
[
'ip'
];
?>
</td>
<td>
<?=
$data
[
'ip'
]
?>
</td>
<td>
<?=
$data
[
'method'
];
?>
</td>
<td>
<?=
$data
[
'method'
]
?>
</td>
<td>
<?=
$data
[
'url'
];
?>
</td>
<td>
<?=
$data
[
'url'
]
?>
</td>
</tr>
</tr>
<?php
endforeach
;
?>
<?php
endforeach
;
?>
</tbody>
</tbody>
...
...
This diff is collapsed.
Click to expand it.
framework/yii/debug/views/default/toolbar.php
View file @
6e538ac6
...
@@ -26,13 +26,13 @@ $url = $panels['request']->getUrl();
...
@@ -26,13 +26,13 @@ $url = $panels['request']->getUrl();
?>
?>
<div
id=
"yii-debug-toolbar"
>
<div
id=
"yii-debug-toolbar"
>
<?php
foreach
(
$panels
as
$panel
)
:
?>
<?php
foreach
(
$panels
as
$panel
)
:
?>
<?=
$panel
->
getSummary
();
?>
<?=
$panel
->
getSummary
()
?>
<?php
endforeach
;
?>
<?php
endforeach
;
?>
<span
class=
"yii-debug-toolbar-toggler"
onclick=
"
<?=
$minJs
;
?>
"
>
›
</span>
<span
class=
"yii-debug-toolbar-toggler"
onclick=
"
<?=
$minJs
?>
"
>
›
</span>
</div>
</div>
<div
id=
"yii-debug-toolbar-min"
>
<div
id=
"yii-debug-toolbar-min"
>
<a
href=
"
<?=
$url
;
?>
"
title=
"Open Yii Debugger"
id=
"yii-debug-toolbar-logo"
>
<a
href=
"
<?=
$url
?>
"
title=
"Open Yii Debugger"
id=
"yii-debug-toolbar-logo"
>
<img
width=
"29"
height=
"30"
alt=
""
src=
"
<?=
ConfigPanel
::
getYiiLogo
();
?>
"
>
<img
width=
"29"
height=
"30"
alt=
""
src=
"
<?=
ConfigPanel
::
getYiiLogo
()
?>
"
>
</a>
</a>
<span
class=
"yii-debug-toolbar-toggler"
onclick=
"
<?=
$maxJs
;
?>
"
>
‹
</span>
<span
class=
"yii-debug-toolbar-toggler"
onclick=
"
<?=
$maxJs
?>
"
>
‹
</span>
</div>
</div>
This diff is collapsed.
Click to expand it.
framework/yii/debug/views/default/view.php
View file @
6e538ac6
...
@@ -21,7 +21,7 @@ $this->title = 'Yii Debugger';
...
@@ -21,7 +21,7 @@ $this->title = 'Yii Debugger';
Yii Debugger
Yii Debugger
</div>
</div>
<?php
foreach
(
$panels
as
$panel
)
:
?>
<?php
foreach
(
$panels
as
$panel
)
:
?>
<?=
$panel
->
getSummary
();
?>
<?=
$panel
->
getSummary
()
?>
<?php
endforeach
;
?>
<?php
endforeach
;
?>
</div>
</div>
...
@@ -71,7 +71,7 @@ $this->title = 'Yii Debugger';
...
@@ -71,7 +71,7 @@ $this->title = 'Yii Debugger';
echo
' at '
.
date
(
'Y-m-d h:i:s a'
,
$summary
[
'time'
])
.
' by '
.
$summary
[
'ip'
];
echo
' at '
.
date
(
'Y-m-d h:i:s a'
,
$summary
[
'time'
])
.
' by '
.
$summary
[
'ip'
];
?>
?>
</div>
</div>
<?=
$activePanel
->
getDetail
();
?>
<?=
$activePanel
->
getDetail
()
?>
</div>
</div>
</div>
</div>
</div>
</div>
...
...
This diff is collapsed.
Click to expand it.
framework/yii/debug/views/layouts/main.php
View file @
6e538ac6
...
@@ -11,12 +11,12 @@ yii\debug\DebugAsset::register($this);
...
@@ -11,12 +11,12 @@ yii\debug\DebugAsset::register($this);
<html>
<html>
<?php
$this
->
beginPage
();
?>
<?php
$this
->
beginPage
();
?>
<head>
<head>
<title>
<?=
Html
::
encode
(
$this
->
title
);
?>
</title>
<title>
<?=
Html
::
encode
(
$this
->
title
)
?>
</title>
<?php
$this
->
head
();
?>
<?php
$this
->
head
();
?>
</head>
</head>
<body>
<body>
<?php
$this
->
beginBody
();
?>
<?php
$this
->
beginBody
();
?>
<?=
$content
;
?>
<?=
$content
?>
<?php
$this
->
endBody
();
?>
<?php
$this
->
endBody
();
?>
</body>
</body>
<?php
$this
->
endPage
();
?>
<?php
$this
->
endPage
();
?>
...
...
This diff is collapsed.
Click to expand it.
framework/yii/gii/generators/controller/templates/controller.php
View file @
6e538ac6
...
@@ -13,15 +13,15 @@ echo "<?php\n";
...
@@ -13,15 +13,15 @@ echo "<?php\n";
?>
?>
<?php
if
(
!
empty
(
$generator
->
ns
))
:
?>
<?php
if
(
!
empty
(
$generator
->
ns
))
:
?>
namespace
<?=
$generator
->
ns
;
?>
;
namespace
<?=
$generator
->
ns
?>
;
<?php
endif
;
?>
<?php
endif
;
?>
class
<?=
$generator
->
getControllerClass
();
?>
extends
<?=
'\\'
.
trim
(
$generator
->
baseClass
,
'\\'
)
.
"
\n
"
;
?>
class
<?=
$generator
->
getControllerClass
()
?>
extends
<?=
'\\'
.
trim
(
$generator
->
baseClass
,
'\\'
)
.
"
\n
"
?>
{
{
<?php
foreach
(
$generator
->
getActionIDs
()
as
$action
)
:
?>
<?php
foreach
(
$generator
->
getActionIDs
()
as
$action
)
:
?>
public function action
<?=
Inflector
::
id2camel
(
$action
);
?>
()
public function action
<?=
Inflector
::
id2camel
(
$action
)
?>
()
{
{
return $this->render('
<?=
$action
;
?>
');
return $this->render('
<?=
$action
?>
');
}
}
<?php
endforeach
;
?>
<?php
endforeach
;
?>
...
...
This diff is collapsed.
Click to expand it.
framework/yii/gii/generators/controller/templates/view.php
View file @
6e538ac6
...
@@ -12,11 +12,11 @@ echo "<?php\n";
...
@@ -12,11 +12,11 @@ echo "<?php\n";
/**
/**
* @var yii\base\View $this
* @var yii\base\View $this
*/
*/
<?=
"?>"
;
?>
<?=
"?>"
?>
<h1>
<?=
$generator
->
getControllerID
()
.
'/'
.
$action
;
?>
</h1>
<h1>
<?=
$generator
->
getControllerID
()
.
'/'
.
$action
?>
</h1>
<p>
<p>
You may change the content of this page by modifying
You may change the content of this page by modifying
the file
<code>
<?=
'<?php'
;
?>
echo __FILE__; ?>
</code>
.
the file
<code>
<?=
'<?php'
?>
echo __FILE__; ?>
</code>
.
</p>
</p>
This diff is collapsed.
Click to expand it.
framework/yii/gii/generators/crud/Generator.php
View file @
6e538ac6
...
@@ -190,9 +190,9 @@ class Generator extends \yii\gii\Generator
...
@@ -190,9 +190,9 @@ class Generator extends \yii\gii\Generator
}
}
$column
=
$tableSchema
->
columns
[
$attribute
];
$column
=
$tableSchema
->
columns
[
$attribute
];
if
(
$column
->
phpType
===
'boolean'
)
{
if
(
$column
->
phpType
===
'boolean'
)
{
return
"
\$
form->field(
\$
model, '
$attribute
')->checkbox()
;
"
;
return
"
\$
form->field(
\$
model, '
$attribute
')->checkbox()"
;
}
elseif
(
$column
->
type
===
'text'
)
{
}
elseif
(
$column
->
type
===
'text'
)
{
return
"
\$
form->field(
\$
model, '
$attribute
')->textarea(['rows' => 6])
;
"
;
return
"
\$
form->field(
\$
model, '
$attribute
')->textarea(['rows' => 6])"
;
}
else
{
}
else
{
if
(
preg_match
(
'/^(password|pass|passwd|passcode)$/i'
,
$column
->
name
))
{
if
(
preg_match
(
'/^(password|pass|passwd|passcode)$/i'
,
$column
->
name
))
{
$input
=
'passwordInput'
;
$input
=
'passwordInput'
;
...
@@ -200,9 +200,9 @@ class Generator extends \yii\gii\Generator
...
@@ -200,9 +200,9 @@ class Generator extends \yii\gii\Generator
$input
=
'textInput'
;
$input
=
'textInput'
;
}
}
if
(
$column
->
phpType
!==
'string'
||
$column
->
size
===
null
)
{
if
(
$column
->
phpType
!==
'string'
||
$column
->
size
===
null
)
{
return
"
\$
form->field(
\$
model, '
$attribute
')->
$input
()
;
"
;
return
"
\$
form->field(
\$
model, '
$attribute
')->
$input
()"
;
}
else
{
}
else
{
return
"
\$
form->field(
\$
model, '
$attribute
')->
$input
(['maxlength' =>
$column->size
])
;
"
;
return
"
\$
form->field(
\$
model, '
$attribute
')->
$input
(['maxlength' =>
$column->size
])"
;
}
}
}
}
}
}
...
@@ -216,9 +216,9 @@ class Generator extends \yii\gii\Generator
...
@@ -216,9 +216,9 @@ class Generator extends \yii\gii\Generator
$tableSchema
=
$this
->
getTableSchema
();
$tableSchema
=
$this
->
getTableSchema
();
$column
=
$tableSchema
->
columns
[
$attribute
];
$column
=
$tableSchema
->
columns
[
$attribute
];
if
(
$column
->
phpType
===
'boolean'
)
{
if
(
$column
->
phpType
===
'boolean'
)
{
return
"
\$
form->field(
\$
model, '
$attribute
')->checkbox()
;
"
;
return
"
\$
form->field(
\$
model, '
$attribute
')->checkbox()"
;
}
else
{
}
else
{
return
"
\$
form->field(
\$
model, '
$attribute
')
;
"
;
return
"
\$
form->field(
\$
model, '
$attribute
')"
;
}
}
}
}
...
...
This diff is collapsed.
Click to expand it.
framework/yii/gii/generators/crud/templates/controller.php
View file @
6e538ac6
...
@@ -21,19 +21,19 @@ $actionParamComments = $generator->generateActionParamComments();
...
@@ -21,19 +21,19 @@ $actionParamComments = $generator->generateActionParamComments();
echo
"<?php
\n
"
;
echo
"<?php
\n
"
;
?>
?>
namespace
<?=
StringHelper
::
dirname
(
ltrim
(
$generator
->
controllerClass
,
'\\'
));
?>
;
namespace
<?=
StringHelper
::
dirname
(
ltrim
(
$generator
->
controllerClass
,
'\\'
))
?>
;
use
<?=
ltrim
(
$generator
->
modelClass
,
'\\'
);
?>
;
use
<?=
ltrim
(
$generator
->
modelClass
,
'\\'
)
?>
;
use
<?=
ltrim
(
$generator
->
searchModelClass
,
'\\'
);
?>
;
use
<?=
ltrim
(
$generator
->
searchModelClass
,
'\\'
)
?>
;
use yii\data\ActiveDataProvider;
use yii\data\ActiveDataProvider;
use
<?=
ltrim
(
$generator
->
baseControllerClass
,
'\\'
);
?>
;
use
<?=
ltrim
(
$generator
->
baseControllerClass
,
'\\'
)
?>
;
use yii\web\HttpException;
use yii\web\HttpException;
use yii\web\VerbFilter;
use yii\web\VerbFilter;
/**
/**
*
<?=
$controllerClass
;
?>
implements the CRUD actions for
<?=
$modelClass
;
?>
model.
*
<?=
$controllerClass
?>
implements the CRUD actions for
<?=
$modelClass
?>
model.
*/
*/
class
<?=
$controllerClass
;
?>
extends
<?=
StringHelper
::
basename
(
$generator
->
baseControllerClass
)
.
"
\n
"
;
?>
class
<?=
$controllerClass
?>
extends
<?=
StringHelper
::
basename
(
$generator
->
baseControllerClass
)
.
"
\n
"
?>
{
{
public function behaviors()
public function behaviors()
{
{
...
@@ -48,12 +48,12 @@ class <?=$controllerClass; ?> extends <?=StringHelper::basename($generator->base
...
@@ -48,12 +48,12 @@ class <?=$controllerClass; ?> extends <?=StringHelper::basename($generator->base
}
}
/**
/**
* Lists all
<?=
$modelClass
;
?>
models.
* Lists all
<?=
$modelClass
?>
models.
* @return mixed
* @return mixed
*/
*/
public function actionIndex()
public function actionIndex()
{
{
$searchModel = new
<?=
$searchModelClass
;
?>
;
$searchModel = new
<?=
$searchModelClass
?>
;
$dataProvider = $searchModel->search($_GET);
$dataProvider = $searchModel->search($_GET);
return $this->render('index', [
return $this->render('index', [
...
@@ -63,28 +63,28 @@ class <?=$controllerClass; ?> extends <?=StringHelper::basename($generator->base
...
@@ -63,28 +63,28 @@ class <?=$controllerClass; ?> extends <?=StringHelper::basename($generator->base
}
}
/**
/**
* Displays a single
<?=
$modelClass
;
?>
model.
* Displays a single
<?=
$modelClass
?>
model.
*
<?=
implode
(
"
\n\t
* "
,
$actionParamComments
)
.
"
\n
"
;
?>
*
<?=
implode
(
"
\n\t
* "
,
$actionParamComments
)
.
"
\n
"
?>
* @return mixed
* @return mixed
*/
*/
public function actionView(
<?=
$actionParams
;
?>
)
public function actionView(
<?=
$actionParams
?>
)
{
{
return $this->render('view', [
return $this->render('view', [
'model' => $this->findModel(
<?=
$actionParams
;
?>
),
'model' => $this->findModel(
<?=
$actionParams
?>
),
]);
]);
}
}
/**
/**
* Creates a new
<?=
$modelClass
;
?>
model.
* Creates a new
<?=
$modelClass
?>
model.
* If creation is successful, the browser will be redirected to the 'view' page.
* If creation is successful, the browser will be redirected to the 'view' page.
* @return mixed
* @return mixed
*/
*/
public function actionCreate()
public function actionCreate()
{
{
$model = new
<?=
$modelClass
;
?>
;
$model = new
<?=
$modelClass
?>
;
if ($model->load($_POST)
&&
$model->save()) {
if ($model->load($_POST)
&&
$model->save()) {
return $this->redirect(['view',
<?=
$urlParams
;
?>
]);
return $this->redirect(['view',
<?=
$urlParams
?>
]);
} else {
} else {
return $this->render('create', [
return $this->render('create', [
'model' => $model,
'model' => $model,
...
@@ -93,17 +93,17 @@ class <?=$controllerClass; ?> extends <?=StringHelper::basename($generator->base
...
@@ -93,17 +93,17 @@ class <?=$controllerClass; ?> extends <?=StringHelper::basename($generator->base
}
}
/**
/**
* Updates an existing
<?=
$modelClass
;
?>
model.
* Updates an existing
<?=
$modelClass
?>
model.
* If update is successful, the browser will be redirected to the 'view' page.
* If update is successful, the browser will be redirected to the 'view' page.
*
<?=
implode
(
"
\n\t
* "
,
$actionParamComments
)
.
"
\n
"
;
?>
*
<?=
implode
(
"
\n\t
* "
,
$actionParamComments
)
.
"
\n
"
?>
* @return mixed
* @return mixed
*/
*/
public function actionUpdate(
<?=
$actionParams
;
?>
)
public function actionUpdate(
<?=
$actionParams
?>
)
{
{
$model = $this->findModel(
<?=
$actionParams
;
?>
);
$model = $this->findModel(
<?=
$actionParams
?>
);
if ($model->load($_POST)
&&
$model->save()) {
if ($model->load($_POST)
&&
$model->save()) {
return $this->redirect(['view',
<?=
$urlParams
;
?>
]);
return $this->redirect(['view',
<?=
$urlParams
?>
]);
} else {
} else {
return $this->render('update', [
return $this->render('update', [
'model' => $model,
'model' => $model,
...
@@ -112,25 +112,25 @@ class <?=$controllerClass; ?> extends <?=StringHelper::basename($generator->base
...
@@ -112,25 +112,25 @@ class <?=$controllerClass; ?> extends <?=StringHelper::basename($generator->base
}
}
/**
/**
* Deletes an existing
<?=
$modelClass
;
?>
model.
* Deletes an existing
<?=
$modelClass
?>
model.
* If deletion is successful, the browser will be redirected to the 'index' page.
* If deletion is successful, the browser will be redirected to the 'index' page.
*
<?=
implode
(
"
\n\t
* "
,
$actionParamComments
)
.
"
\n
"
;
?>
*
<?=
implode
(
"
\n\t
* "
,
$actionParamComments
)
.
"
\n
"
?>
* @return mixed
* @return mixed
*/
*/
public function actionDelete(
<?=
$actionParams
;
?>
)
public function actionDelete(
<?=
$actionParams
?>
)
{
{
$this->findModel(
<?=
$actionParams
;
?>
)->delete();
$this->findModel(
<?=
$actionParams
?>
)->delete();
return $this->redirect(['index']);
return $this->redirect(['index']);
}
}
/**
/**
* Finds the
<?=
$modelClass
;
?>
model based on its primary key value.
* Finds the
<?=
$modelClass
?>
model based on its primary key value.
* If the model is not found, a 404 HTTP exception will be thrown.
* If the model is not found, a 404 HTTP exception will be thrown.
*
<?=
implode
(
"
\n\t
* "
,
$actionParamComments
)
.
"
\n
"
;
?>
*
<?=
implode
(
"
\n\t
* "
,
$actionParamComments
)
.
"
\n
"
?>
* @return
<?=
$modelClass
;
?>
the loaded model
* @return
<?=
$modelClass
?>
the loaded model
* @throws HttpException if the model cannot be found
* @throws HttpException if the model cannot be found
*/
*/
protected function findModel(
<?=
$actionParams
;
?>
)
protected function findModel(
<?=
$actionParams
?>
)
{
{
<?php
<?php
if
(
count
(
$pks
)
===
1
)
{
if
(
count
(
$pks
)
===
1
)
{
...
@@ -143,7 +143,7 @@ if (count($pks) === 1) {
...
@@ -143,7 +143,7 @@ if (count($pks) === 1) {
$condition
=
'['
.
implode
(
', '
,
$condition
)
.
']'
;
$condition
=
'['
.
implode
(
', '
,
$condition
)
.
']'
;
}
}
?>
?>
if (($model =
<?=
$modelClass
;
?>
::find(
<?=
$condition
;
?>
)) !== null) {
if (($model =
<?=
$modelClass
?>
::find(
<?=
$condition
?>
)) !== null) {
return $model;
return $model;
} else {
} else {
throw new HttpException(404, 'The requested page does not exist.');
throw new HttpException(404, 'The requested page does not exist.');
...
...
This diff is collapsed.
Click to expand it.
framework/yii/gii/generators/crud/templates/search.php
View file @
6e538ac6
...
@@ -19,23 +19,23 @@ $searchConditions = $generator->generateSearchConditions();
...
@@ -19,23 +19,23 @@ $searchConditions = $generator->generateSearchConditions();
echo
"<?php
\n
"
;
echo
"<?php
\n
"
;
?>
?>
namespace
<?=
StringHelper
::
dirname
(
ltrim
(
$generator
->
searchModelClass
,
'\\'
));
?>
;
namespace
<?=
StringHelper
::
dirname
(
ltrim
(
$generator
->
searchModelClass
,
'\\'
))
?>
;
use yii\base\Model;
use yii\base\Model;
use yii\data\ActiveDataProvider;
use yii\data\ActiveDataProvider;
use
<?=
ltrim
(
$generator
->
modelClass
,
'\\'
);
?>
;
use
<?=
ltrim
(
$generator
->
modelClass
,
'\\'
)
?>
;
/**
/**
*
<?=
$searchModelClass
;
?>
represents the model behind the search form about
<?=
$modelClass
;
?>
.
*
<?=
$searchModelClass
?>
represents the model behind the search form about
<?=
$modelClass
?>
.
*/
*/
class
<?=
$searchModelClass
;
?>
extends Model
class
<?=
$searchModelClass
?>
extends Model
{
{
public $
<?=
implode
(
";
\n\t
public $"
,
$searchAttributes
);
?>
;
public $
<?=
implode
(
";
\n\t
public $"
,
$searchAttributes
)
?>
;
public function rules()
public function rules()
{
{
return [
return [
<?=
implode
(
",
\n\t\t\t
"
,
$rules
);
?>
,
<?=
implode
(
",
\n\t\t\t
"
,
$rules
)
?>
,
];
];
}
}
...
@@ -46,14 +46,14 @@ class <?=$searchModelClass; ?> extends Model
...
@@ -46,14 +46,14 @@ class <?=$searchModelClass; ?> extends Model
{
{
return [
return [
<?php
foreach
(
$labels
as
$name
=>
$label
)
:
?>
<?php
foreach
(
$labels
as
$name
=>
$label
)
:
?>
<?=
"'
$name
' => '"
.
addslashes
(
$label
)
.
"',
\n
"
;
?>
<?=
"'
$name
' => '"
.
addslashes
(
$label
)
.
"',
\n
"
?>
<?php
endforeach
;
?>
<?php
endforeach
;
?>
];
];
}
}
public function search($params)
public function search($params)
{
{
$query =
<?=
$modelClass
;
?>
::find();
$query =
<?=
$modelClass
?>
::find();
$dataProvider = new ActiveDataProvider([
$dataProvider = new ActiveDataProvider([
'query' => $query,
'query' => $query,
]);
]);
...
@@ -62,7 +62,7 @@ class <?=$searchModelClass; ?> extends Model
...
@@ -62,7 +62,7 @@ class <?=$searchModelClass; ?> extends Model
return $dataProvider;
return $dataProvider;
}
}
<?=
implode
(
"
\n\t\t
"
,
$searchConditions
);
?>
<?=
implode
(
"
\n\t\t
"
,
$searchConditions
)
?>
return $dataProvider;
return $dataProvider;
}
}
...
...
This diff is collapsed.
Click to expand it.
framework/yii/gii/generators/crud/templates/views/_form.php
View file @
6e538ac6
...
@@ -23,22 +23,22 @@ use yii\widgets\ActiveForm;
...
@@ -23,22 +23,22 @@ use yii\widgets\ActiveForm;
/**
/**
* @var yii\base\View $this
* @var yii\base\View $this
* @var
<?=
ltrim
(
$generator
->
modelClass
,
'\\'
);
?>
$model
* @var
<?=
ltrim
(
$generator
->
modelClass
,
'\\'
)
?>
$model
* @var yii\widgets\ActiveForm $form
* @var yii\widgets\ActiveForm $form
*/
*/
?>
?>
<div
class=
"
<?=
Inflector
::
camel2id
(
StringHelper
::
basename
(
$generator
->
modelClass
));
?>
-form"
>
<div
class=
"
<?=
Inflector
::
camel2id
(
StringHelper
::
basename
(
$generator
->
modelClass
))
?>
-form"
>
<?=
'<?php'
;
?>
$form = ActiveForm::begin(); ?>
<?=
"<?php "
?>
$form = ActiveForm::begin(); ?>
<?php
foreach
(
$safeAttributes
as
$attribute
)
{
<?php
foreach
(
$safeAttributes
as
$attribute
)
{
echo
"
\t\t
<?="
.
$generator
->
generateActiveField
(
$attribute
)
.
" ?>
\n\n
"
;
echo
"
\t\t
<?=
"
.
$generator
->
generateActiveField
(
$attribute
)
.
" ?>
\n\n
"
;
}
?>
}
?>
<div
class=
"form-group"
>
<div
class=
"form-group"
>
<?=
'<?php'
;
?>
echo Html::submitButton($model->isNewRecord ? 'Create' : 'Update', ['class' => $model->isNewRecord ? 'btn btn-success' : 'btn btn-primary']);
?>
<?=
"<?= "
?>
Html::submitButton($model->isNewRecord ? 'Create' : 'Update', ['class' => $model->isNewRecord ? 'btn btn-success' : 'btn btn-primary'])
?>
</div>
</div>
<?=
'<?php'
;
?>
ActiveForm::end(); ?>
<?=
"<?php "
?>
ActiveForm::end(); ?>
</div>
</div>
This diff is collapsed.
Click to expand it.
framework/yii/gii/generators/crud/templates/views/_search.php
View file @
6e538ac6
...
@@ -16,14 +16,14 @@ use yii\widgets\ActiveForm;
...
@@ -16,14 +16,14 @@ use yii\widgets\ActiveForm;
/**
/**
* @var yii\base\View $this
* @var yii\base\View $this
* @var
<?=
ltrim
(
$generator
->
searchModelClass
,
'\\'
);
?>
$model
* @var
<?=
ltrim
(
$generator
->
searchModelClass
,
'\\'
)
?>
$model
* @var yii\widgets\ActiveForm $form
* @var yii\widgets\ActiveForm $form
*/
*/
?>
?>
<div
class=
"
<?=
Inflector
::
camel2id
(
StringHelper
::
basename
(
$generator
->
modelClass
));
?>
-search"
>
<div
class=
"
<?=
Inflector
::
camel2id
(
StringHelper
::
basename
(
$generator
->
modelClass
))
?>
-search"
>
<?=
'<?php'
;
?>
$form = ActiveForm::begin([
<?=
"<?php "
?>
$form = ActiveForm::begin([
'action' => ['index'],
'action' => ['index'],
'method' => 'get',
'method' => 'get',
]); ?>
]); ?>
...
@@ -32,17 +32,17 @@ use yii\widgets\ActiveForm;
...
@@ -32,17 +32,17 @@ use yii\widgets\ActiveForm;
$count
=
0
;
$count
=
0
;
foreach
(
$generator
->
getTableSchema
()
->
getColumnNames
()
as
$attribute
)
{
foreach
(
$generator
->
getTableSchema
()
->
getColumnNames
()
as
$attribute
)
{
if
(
++
$count
<
6
)
{
if
(
++
$count
<
6
)
{
echo
"
\t\t
<?=
"
.
$generator
->
generateActiveSearchField
(
$attribute
)
.
" ?>
\n
"
;
echo
"
\t\t
<?=
"
.
$generator
->
generateActiveSearchField
(
$attribute
)
.
" ?>
\n
\n
"
;
}
else
{
}
else
{
echo
"
\t\t
<?
php // echo "
.
$generator
->
generateActiveSearchField
(
$attribute
)
.
" ?>
\n
"
;
echo
"
\t\t
<?
= // "
.
$generator
->
generateActiveSearchField
(
$attribute
)
.
" ?>
\n
\n
"
;
}
}
}
}
?>
?>
<div
class=
"form-group"
>
<div
class=
"form-group"
>
<?=
'<?php'
;
?>
echo Html::submitButton('Search', ['class' => 'btn btn-primary']);
?>
<?=
"<?= "
?>
Html::submitButton('Search', ['class' => 'btn btn-primary'])
?>
<?=
'<?php'
;
?>
echo Html::resetButton('Reset', ['class' => 'btn btn-default']);
?>
<?=
"<?= "
?>
Html::resetButton('Reset', ['class' => 'btn btn-default'])
?>
</div>
</div>
<?=
'<?php'
;
?>
ActiveForm::end(); ?>
<?=
"<?php "
?>
ActiveForm::end(); ?>
</div>
</div>
This diff is collapsed.
Click to expand it.
framework/yii/gii/generators/crud/templates/views/create.php
View file @
6e538ac6
...
@@ -15,18 +15,18 @@ use yii\helpers\Html;
...
@@ -15,18 +15,18 @@ use yii\helpers\Html;
/**
/**
* @var yii\base\View $this
* @var yii\base\View $this
* @var
<?=
ltrim
(
$generator
->
modelClass
,
'\\'
);
?>
$model
* @var
<?=
ltrim
(
$generator
->
modelClass
,
'\\'
)
?>
$model
*/
*/
$this->title = 'Create
<?=
Inflector
::
camel2words
(
StringHelper
::
basename
(
$generator
->
modelClass
));
?>
';
$this->title = 'Create
<?=
Inflector
::
camel2words
(
StringHelper
::
basename
(
$generator
->
modelClass
))
?>
';
$this->params['breadcrumbs'][] = ['label' => '
<?=
Inflector
::
pluralize
(
Inflector
::
camel2words
(
StringHelper
::
basename
(
$generator
->
modelClass
)));
?>
', 'url' => ['index']];
$this->params['breadcrumbs'][] = ['label' => '
<?=
Inflector
::
pluralize
(
Inflector
::
camel2words
(
StringHelper
::
basename
(
$generator
->
modelClass
)))
?>
', 'url' => ['index']];
$this->params['breadcrumbs'][] = $this->title;
$this->params['breadcrumbs'][] = $this->title;
?>
?>
<div
class=
"
<?=
Inflector
::
camel2id
(
StringHelper
::
basename
(
$generator
->
modelClass
));
?>
-create"
>
<div
class=
"
<?=
Inflector
::
camel2id
(
StringHelper
::
basename
(
$generator
->
modelClass
))
?>
-create"
>
<h1>
<?=
"<?php"
;
?>
echo Html::encode($this->title);
?>
</h1>
<h1>
<?=
"<?= "
?>
Html::encode($this->title)
?>
</h1>
<?=
"<?php"
;
?>
echo $this->render('_form', [
<?=
"<?php "
?>
echo $this->render('_form', [
'model' => $model,
'model' => $model,
]); ?>
]); ?>
...
...
This diff is collapsed.
Click to expand it.
framework/yii/gii/generators/crud/templates/views/index.php
View file @
6e538ac6
...
@@ -15,29 +15,29 @@ echo "<?php\n";
...
@@ -15,29 +15,29 @@ echo "<?php\n";
?>
?>
use yii\helpers\Html;
use yii\helpers\Html;
use
<?=
$generator
->
indexWidgetType
===
'grid'
?
'yii\grid\GridView'
:
'yii\widgets\ListView'
;
?>
;
use
<?=
$generator
->
indexWidgetType
===
'grid'
?
"yii\grid\GridView"
:
"yii\widgets\ListView"
?>
;
/**
/**
* @var yii\base\View $this
* @var yii\base\View $this
* @var yii\data\ActiveDataProvider $dataProvider
* @var yii\data\ActiveDataProvider $dataProvider
* @var
<?=
ltrim
(
$generator
->
searchModelClass
,
'\\'
);
?>
$searchModel
* @var
<?=
ltrim
(
$generator
->
searchModelClass
,
'\\'
)
?>
$searchModel
*/
*/
$this->title = '
<?=
Inflector
::
pluralize
(
Inflector
::
camel2words
(
StringHelper
::
basename
(
$generator
->
modelClass
)));
?>
';
$this->title = '
<?=
Inflector
::
pluralize
(
Inflector
::
camel2words
(
StringHelper
::
basename
(
$generator
->
modelClass
)))
?>
';
$this->params['breadcrumbs'][] = $this->title;
$this->params['breadcrumbs'][] = $this->title;
?>
?>
<div
class=
"
<?=
Inflector
::
camel2id
(
StringHelper
::
basename
(
$generator
->
modelClass
));
?>
-index"
>
<div
class=
"
<?=
Inflector
::
camel2id
(
StringHelper
::
basename
(
$generator
->
modelClass
))
?>
-index"
>
<h1>
<?=
"<?php"
;
?>
echo Html::encode($this->title);
?>
</h1>
<h1>
<?=
"<?= "
?>
Html::encode($this->title)
?>
</h1>
<?=
'<?php'
.
(
$generator
->
indexWidgetType
===
'grid'
?
' //'
:
''
);
?>
echo $this->render('_search', ['model' => $searchModel]); ?>
<?=
"<?php "
.
(
$generator
->
indexWidgetType
===
'grid'
?
"// "
:
""
)
?>
echo $this->render('_search', ['model' => $searchModel]); ?>
<p>
<p>
<?=
'<?php'
;
?>
echo Html::a('Create
<?=
StringHelper
::
basename
(
$generator
->
modelClass
);
?>
', ['create'], ['class' => 'btn btn-success']);
?>
<?=
"<?= "
?>
Html::a('Create
<?=
StringHelper
::
basename
(
$generator
->
modelClass
)
?>
', ['create'], ['class' => 'btn btn-success'])
?>
</p>
</p>
<?php
if
(
$generator
->
indexWidgetType
===
'grid'
)
:
?>
<?php
if
(
$generator
->
indexWidgetType
===
'grid'
)
:
?>
<?=
"<?php"
;
?>
echo GridView::widget([
<?=
"<?php "
?>
echo GridView::widget([
'dataProvider' => $dataProvider,
'dataProvider' => $dataProvider,
'filterModel' => $searchModel,
'filterModel' => $searchModel,
'columns' => [
'columns' => [
...
@@ -48,9 +48,9 @@ $count = 0;
...
@@ -48,9 +48,9 @@ $count = 0;
foreach
(
$generator
->
getTableSchema
()
->
columns
as
$column
)
{
foreach
(
$generator
->
getTableSchema
()
->
columns
as
$column
)
{
$format
=
$generator
->
generateColumnFormat
(
$column
);
$format
=
$generator
->
generateColumnFormat
(
$column
);
if
(
++
$count
<
6
)
{
if
(
++
$count
<
6
)
{
echo
"
\t\t\t
'"
.
$column
->
name
.
(
$format
===
'text'
?
''
:
':'
.
$format
)
.
"',
\n
"
;
echo
"
\t\t\t
'"
.
$column
->
name
.
(
$format
===
'text'
?
""
:
":"
.
$format
)
.
"',
\n
"
;
}
else
{
}
else
{
echo
"
\t\t\t
// '"
.
$column
->
name
.
(
$format
===
'text'
?
''
:
':'
.
$format
)
.
"',
\n
"
;
echo
"
\t\t\t
// '"
.
$column
->
name
.
(
$format
===
'text'
?
""
:
":"
.
$format
)
.
"',
\n
"
;
}
}
}
}
?>
?>
...
@@ -59,11 +59,11 @@ foreach ($generator->getTableSchema()->columns as $column) {
...
@@ -59,11 +59,11 @@ foreach ($generator->getTableSchema()->columns as $column) {
],
],
]); ?>
]); ?>
<?php
else
:
?>
<?php
else
:
?>
<?=
"<?php"
;
?>
echo ListView::widget([
<?=
"<?php "
?>
echo ListView::widget([
'dataProvider' => $dataProvider,
'dataProvider' => $dataProvider,
'itemOptions' => ['class' => 'item'],
'itemOptions' => ['class' => 'item'],
'itemView' => function ($model, $key, $index, $widget) {
'itemView' => function ($model, $key, $index, $widget) {
return Html::a(Html::encode($model->
<?=
$nameAttribute
;
?>
), ['view',
<?=
$urlParams
;
?>
]);
return Html::a(Html::encode($model->
<?=
$nameAttribute
?>
), ['view',
<?=
$urlParams
?>
]);
},
},
]); ?>
]); ?>
<?php
endif
;
?>
<?php
endif
;
?>
...
...
This diff is collapsed.
Click to expand it.
framework/yii/gii/generators/crud/templates/views/update.php
View file @
6e538ac6
...
@@ -17,19 +17,19 @@ use yii\helpers\Html;
...
@@ -17,19 +17,19 @@ use yii\helpers\Html;
/**
/**
* @var yii\base\View $this
* @var yii\base\View $this
* @var
<?=
ltrim
(
$generator
->
modelClass
,
'\\'
);
?>
$model
* @var
<?=
ltrim
(
$generator
->
modelClass
,
'\\'
)
?>
$model
*/
*/
$this->title = 'Update
<?=
Inflector
::
camel2words
(
StringHelper
::
basename
(
$generator
->
modelClass
));
?>
: ' . $model->
<?=
$generator
->
getNameAttribute
();
?>
;
$this->title = 'Update
<?=
Inflector
::
camel2words
(
StringHelper
::
basename
(
$generator
->
modelClass
))
?>
: ' . $model->
<?=
$generator
->
getNameAttribute
()
?>
;
$this->params['breadcrumbs'][] = ['label' => '
<?=
Inflector
::
pluralize
(
Inflector
::
camel2words
(
StringHelper
::
basename
(
$generator
->
modelClass
)));
?>
', 'url' => ['index']];
$this->params['breadcrumbs'][] = ['label' => '
<?=
Inflector
::
pluralize
(
Inflector
::
camel2words
(
StringHelper
::
basename
(
$generator
->
modelClass
)))
?>
', 'url' => ['index']];
$this->params['breadcrumbs'][] = ['label' => $model->
<?=
$generator
->
getNameAttribute
();
?>
, 'url' => ['view',
<?=
$urlParams
;
?>
]];
$this->params['breadcrumbs'][] = ['label' => $model->
<?=
$generator
->
getNameAttribute
()
?>
, 'url' => ['view',
<?=
$urlParams
?>
]];
$this->params['breadcrumbs'][] = 'Update';
$this->params['breadcrumbs'][] = 'Update';
?>
?>
<div
class=
"
<?=
Inflector
::
camel2id
(
StringHelper
::
basename
(
$generator
->
modelClass
));
?>
-update"
>
<div
class=
"
<?=
Inflector
::
camel2id
(
StringHelper
::
basename
(
$generator
->
modelClass
))
?>
-update"
>
<h1>
<?=
"<?php"
;
?>
echo Html::encode($this->title);
?>
</h1>
<h1>
<?=
"<?= "
?>
Html::encode($this->title)
?>
</h1>
<?=
"<?php"
;
?>
echo $this->render('_form', [
<?=
"<?php "
?>
echo $this->render('_form', [
'model' => $model,
'model' => $model,
]); ?>
]); ?>
...
...
This diff is collapsed.
Click to expand it.
framework/yii/gii/generators/crud/templates/views/view.php
View file @
6e538ac6
...
@@ -18,33 +18,33 @@ use yii\widgets\DetailView;
...
@@ -18,33 +18,33 @@ use yii\widgets\DetailView;
/**
/**
* @var yii\base\View $this
* @var yii\base\View $this
* @var
<?=
ltrim
(
$generator
->
modelClass
,
'\\'
);
?>
$model
* @var
<?=
ltrim
(
$generator
->
modelClass
,
'\\'
)
?>
$model
*/
*/
$this->title = $model->
<?=
$generator
->
getNameAttribute
();
?>
;
$this->title = $model->
<?=
$generator
->
getNameAttribute
()
?>
;
$this->params['breadcrumbs'][] = ['label' => '
<?=
Inflector
::
pluralize
(
Inflector
::
camel2words
(
StringHelper
::
basename
(
$generator
->
modelClass
)));
?>
', 'url' => ['index']];
$this->params['breadcrumbs'][] = ['label' => '
<?=
Inflector
::
pluralize
(
Inflector
::
camel2words
(
StringHelper
::
basename
(
$generator
->
modelClass
)))
?>
', 'url' => ['index']];
$this->params['breadcrumbs'][] = $this->title;
$this->params['breadcrumbs'][] = $this->title;
?>
?>
<div
class=
"
<?=
Inflector
::
camel2id
(
StringHelper
::
basename
(
$generator
->
modelClass
));
?>
-view"
>
<div
class=
"
<?=
Inflector
::
camel2id
(
StringHelper
::
basename
(
$generator
->
modelClass
))
?>
-view"
>
<h1>
<?=
"<?php"
;
?>
echo Html::encode($this->title);
?>
</h1>
<h1>
<?=
"<?= "
?>
Html::encode($this->title)
?>
</h1>
<p>
<p>
<?=
'<?php'
;
?>
echo Html::a('Update', ['update',
<?=
$urlParams
;
?>
], ['class' => 'btn btn-primary']);
?>
<?=
"<?= "
?>
Html::a('Update', ['update',
<?=
$urlParams
?>
], ['class' => 'btn btn-primary'])
?>
<?=
'<?php'
;
?>
echo Html::a('Delete', ['delete',
<?=
$urlParams
;
?>
], [
<?=
"<?php "
?>
echo Html::a('Delete', ['delete',
<?=
$urlParams
?>
], [
'class' => 'btn btn-danger',
'class' => 'btn btn-danger',
'data-confirm' => Yii::t('app', 'Are you sure to delete this item?'),
'data-confirm' => Yii::t('app', 'Are you sure to delete this item?'),
'data-method' => 'post',
'data-method' => 'post',
]); ?>
]); ?>
</p>
</p>
<?=
'<?php'
;
?>
echo DetailView::widget([
<?=
"<?php "
?>
echo DetailView::widget([
'model' => $model,
'model' => $model,
'attributes' => [
'attributes' => [
<?php
<?php
foreach
(
$generator
->
getTableSchema
()
->
columns
as
$column
)
{
foreach
(
$generator
->
getTableSchema
()
->
columns
as
$column
)
{
$format
=
$generator
->
generateColumnFormat
(
$column
);
$format
=
$generator
->
generateColumnFormat
(
$column
);
echo
"
\t\t\t
'"
.
$column
->
name
.
(
$format
===
'text'
?
''
:
':'
.
$format
)
.
"',
\n
"
;
echo
"
\t\t\t
'"
.
$column
->
name
.
(
$format
===
'text'
?
""
:
":"
.
$format
)
.
"',
\n
"
;
}
}
?>
?>
],
],
...
...
This diff is collapsed.
Click to expand it.
framework/yii/gii/generators/form/templates/action.php
View file @
6e538ac6
...
@@ -12,9 +12,9 @@ use yii\helpers\Inflector;
...
@@ -12,9 +12,9 @@ use yii\helpers\Inflector;
echo
"<?php
\n
"
;
echo
"<?php
\n
"
;
?>
?>
public function action
<?=
Inflector
::
id2camel
(
trim
(
basename
(
$generator
->
viewName
),
'_'
));
?>
()
public function action
<?=
Inflector
::
id2camel
(
trim
(
basename
(
$generator
->
viewName
),
'_'
))
?>
()
{
{
$model = new
<?=
$generator
->
modelClass
;
?><?=
empty
(
$generator
->
scenarioName
)
?
''
:
"(['scenario' => '
{
$generator
->
scenarioName
}
'])"
;
?>
;
$model = new
<?=
$generator
->
modelClass
?><?=
empty
(
$generator
->
scenarioName
)
?
''
:
"(['scenario' => '
{
$generator
->
scenarioName
}
'])"
?>
;
if ($model->load($_POST)) {
if ($model->load($_POST)) {
if($model->validate()) {
if($model->validate()) {
...
@@ -22,7 +22,7 @@ public function action<?=Inflector::id2camel(trim(basename($generator->viewName)
...
@@ -22,7 +22,7 @@ public function action<?=Inflector::id2camel(trim(basename($generator->viewName)
return;
return;
}
}
}
}
return $this->render('
<?=
$generator
->
viewName
;
?>
', [
return $this->render('
<?=
$generator
->
viewName
?>
', [
'model' => $model,
'model' => $model,
]);
]);
}
}
This diff is collapsed.
Click to expand it.
framework/yii/gii/generators/form/templates/form.php
View file @
6e538ac6
...
@@ -14,22 +14,22 @@ use yii\widgets\ActiveForm;
...
@@ -14,22 +14,22 @@ use yii\widgets\ActiveForm;
/**
/**
* @var yii\base\View $this
* @var yii\base\View $this
* @var
<?=
$generator
->
modelClass
;
?>
$model
* @var
<?=
$generator
->
modelClass
?>
$model
* @var ActiveForm $form
* @var ActiveForm $form
*/
*/
<?=
"?>"
;
?>
<?=
"?>"
?>
<div
class=
"
<?=
str_replace
(
'/'
,
'-'
,
trim
(
$generator
->
viewName
,
'_'
));
?>
"
>
<div
class=
"
<?=
str_replace
(
'/'
,
'-'
,
trim
(
$generator
->
viewName
,
'_'
))
?>
"
>
<?=
'<?php'
;
?>
$form = ActiveForm::begin(); ?>
<?=
'<?php'
?>
$form = ActiveForm::begin(); ?>
<?php
foreach
(
$generator
->
getModelAttributes
()
as
$attribute
)
:
?>
<?php
foreach
(
$generator
->
getModelAttributes
()
as
$attribute
)
:
?>
<?=
'<?php'
;
?>
echo $form->field($model, '
<?=
$attribute
;
?>
'); ?>
<?=
'<?php'
?>
echo $form->field($model, '
<?=
$attribute
?>
'); ?>
<?php
endforeach
;
?>
<?php
endforeach
;
?>
<div
class=
"form-group"
>
<div
class=
"form-group"
>
<?=
'<?php'
;
?>
echo Html::submitButton('Submit', ['class' => 'btn btn-primary']); ?>
<?=
'<?php'
?>
echo Html::submitButton('Submit', ['class' => 'btn btn-primary']); ?>
</div>
</div>
<?=
'<?php'
;
?>
ActiveForm::end(); ?>
<?=
'<?php'
?>
ActiveForm::end(); ?>
</div>
<!--
<?=
str_replace
(
'/'
,
'-'
,
trim
(
$generator
->
viewName
,
'-'
));
?>
-->
</div>
<!--
<?=
str_replace
(
'/'
,
'-'
,
trim
(
$generator
->
viewName
,
'-'
))
?>
-->
This diff is collapsed.
Click to expand it.
framework/yii/gii/generators/model/templates/model.php
View file @
6e538ac6
...
@@ -15,29 +15,29 @@
...
@@ -15,29 +15,29 @@
echo
"<?php
\n
"
;
echo
"<?php
\n
"
;
?>
?>
namespace
<?=
$generator
->
ns
;
?>
;
namespace
<?=
$generator
->
ns
?>
;
/**
/**
* This is the model class for table "
<?=
$tableName
;
?>
".
* This is the model class for table "
<?=
$tableName
?>
".
*
*
<?php
foreach
(
$tableSchema
->
columns
as
$column
)
:
?>
<?php
foreach
(
$tableSchema
->
columns
as
$column
)
:
?>
* @property
<?=
"
{
$column
->
phpType
}
\$
{
$column
->
name
}
\n
"
;
?>
* @property
<?=
"
{
$column
->
phpType
}
\$
{
$column
->
name
}
\n
"
?>
<?php
endforeach
;
?>
<?php
endforeach
;
?>
<?php
if
(
!
empty
(
$relations
))
:
?>
<?php
if
(
!
empty
(
$relations
))
:
?>
*
*
<?php
foreach
(
$relations
as
$name
=>
$relation
)
:
?>
<?php
foreach
(
$relations
as
$name
=>
$relation
)
:
?>
* @property
<?=
$relation
[
1
]
.
(
$relation
[
2
]
?
'[]'
:
''
)
.
' $'
.
lcfirst
(
$name
)
.
"
\n
"
;
?>
* @property
<?=
$relation
[
1
]
.
(
$relation
[
2
]
?
'[]'
:
''
)
.
' $'
.
lcfirst
(
$name
)
.
"
\n
"
?>
<?php
endforeach
;
?>
<?php
endforeach
;
?>
<?php
endif
;
?>
<?php
endif
;
?>
*/
*/
class
<?=
$className
;
?>
extends
<?=
'\\'
.
ltrim
(
$generator
->
baseClass
,
'\\'
)
.
"
\n
"
;
?>
class
<?=
$className
?>
extends
<?=
'\\'
.
ltrim
(
$generator
->
baseClass
,
'\\'
)
.
"
\n
"
?>
{
{
/**
/**
* @inheritdoc
* @inheritdoc
*/
*/
public static function tableName()
public static function tableName()
{
{
return '
<?=
$tableName
;
?>
';
return '
<?=
$tableName
?>
';
}
}
/**
/**
...
@@ -45,7 +45,7 @@ class <?=$className; ?> extends <?='\\' . ltrim($generator->baseClass, '\\') . "
...
@@ -45,7 +45,7 @@ class <?=$className; ?> extends <?='\\' . ltrim($generator->baseClass, '\\') . "
*/
*/
public function rules()
public function rules()
{
{
return [
<?=
"
\n\t\t\t
"
.
implode
(
",
\n\t\t\t
"
,
$rules
)
.
"
\n\t\t
"
;
?>
];
return [
<?=
"
\n\t\t\t
"
.
implode
(
",
\n\t\t\t
"
,
$rules
)
.
"
\n\t\t
"
?>
];
}
}
/**
/**
...
@@ -55,7 +55,7 @@ class <?=$className; ?> extends <?='\\' . ltrim($generator->baseClass, '\\') . "
...
@@ -55,7 +55,7 @@ class <?=$className; ?> extends <?='\\' . ltrim($generator->baseClass, '\\') . "
{
{
return [
return [
<?php
foreach
(
$labels
as
$name
=>
$label
)
:
?>
<?php
foreach
(
$labels
as
$name
=>
$label
)
:
?>
<?=
"'
$name
' => '"
.
addslashes
(
$label
)
.
"',
\n
"
;
?>
<?=
"'
$name
' => '"
.
addslashes
(
$label
)
.
"',
\n
"
?>
<?php
endforeach
;
?>
<?php
endforeach
;
?>
];
];
}
}
...
@@ -64,9 +64,9 @@ class <?=$className; ?> extends <?='\\' . ltrim($generator->baseClass, '\\') . "
...
@@ -64,9 +64,9 @@ class <?=$className; ?> extends <?='\\' . ltrim($generator->baseClass, '\\') . "
/**
/**
* @return \yii\db\ActiveRelation
* @return \yii\db\ActiveRelation
*/
*/
public function get
<?=
$name
;
?>
()
public function get
<?=
$name
?>
()
{
{
<?=
$relation
[
0
]
.
"
\n
"
;
?>
<?=
$relation
[
0
]
.
"
\n
"
?>
}
}
<?php
endforeach
;
?>
<?php
endforeach
;
?>
}
}
This diff is collapsed.
Click to expand it.
framework/yii/gii/generators/module/templates/controller.php
View file @
6e538ac6
...
@@ -8,7 +8,7 @@
...
@@ -8,7 +8,7 @@
echo
"<?php
\n
"
;
echo
"<?php
\n
"
;
?>
?>
namespace
<?=
$generator
->
getControllerNamespace
();
?>
;
namespace
<?=
$generator
->
getControllerNamespace
()
?>
;
use yii\web\Controller;
use yii\web\Controller;
...
...
This diff is collapsed.
Click to expand it.
framework/yii/gii/generators/module/templates/module.php
View file @
6e538ac6
...
@@ -13,12 +13,12 @@ $className = substr($className, $pos + 1);
...
@@ -13,12 +13,12 @@ $className = substr($className, $pos + 1);
echo
"<?php
\n
"
;
echo
"<?php
\n
"
;
?>
?>
namespace
<?=
$ns
;
?>
;
namespace
<?=
$ns
?>
;
class
<?=
$className
;
?>
extends \yii\base\Module
class
<?=
$className
?>
extends \yii\base\Module
{
{
public $controllerNamespace = '
<?=
$generator
->
getControllerNamespace
();
?>
';
public $controllerNamespace = '
<?=
$generator
->
getControllerNamespace
()
?>
';
public function init()
public function init()
{
{
...
...
This diff is collapsed.
Click to expand it.
framework/yii/gii/generators/module/templates/view.php
View file @
6e538ac6
...
@@ -4,15 +4,15 @@
...
@@ -4,15 +4,15 @@
* @var yii\gii\generators\module\Generator $generator
* @var yii\gii\generators\module\Generator $generator
*/
*/
?>
?>
<div
class=
"
<?=
$generator
->
moduleID
.
'-default-index'
;
?>
"
>
<div
class=
"
<?=
$generator
->
moduleID
.
'-default-index'
?>
"
>
<h1>
<?=
"<?php"
;
?>
echo $this->context->action->uniqueId; ?>
</h1>
<h1>
<?=
"<?php"
?>
echo $this->context->action->uniqueId; ?>
</h1>
<p>
<p>
This is the view content for action "
<?=
"<?php"
;
?>
echo $this->context->action->id; ?>".
This is the view content for action "
<?=
"<?php"
?>
echo $this->context->action->id; ?>".
The action belongs to the controller "
<?=
"<?php"
;
?>
echo get_class($this->context); ?>"
The action belongs to the controller "
<?=
"<?php"
?>
echo get_class($this->context); ?>"
in the "
<?=
"<?php"
;
?>
echo $this->context->module->id; ?>" module.
in the "
<?=
"<?php"
?>
echo $this->context->module->id; ?>" module.
</p>
</p>
<p>
<p>
You may customize this page by editing the following file:
<br>
You may customize this page by editing the following file:
<br>
<code>
<?=
"<?php"
;
?>
echo __FILE__; ?>
</code>
<code>
<?=
"<?php"
?>
echo __FILE__; ?>
</code>
</p>
</p>
</div>
</div>
This diff is collapsed.
Click to expand it.
framework/yii/gii/views/default/diff.php
View file @
6e538ac6
...
@@ -10,6 +10,6 @@
...
@@ -10,6 +10,6 @@
<?php
elseif
(
empty
(
$diff
))
:
?>
<?php
elseif
(
empty
(
$diff
))
:
?>
<div
class=
"alert alert-success"
>
Identical.
</div>
<div
class=
"alert alert-success"
>
Identical.
</div>
<?php
else
:
?>
<?php
else
:
?>
<div
class=
"content"
>
<?=
$diff
;
?>
</div>
<div
class=
"content"
>
<?=
$diff
?>
</div>
<?php
endif
;
?>
<?php
endif
;
?>
</div>
</div>
This diff is collapsed.
Click to expand it.
framework/yii/gii/views/default/index.php
View file @
6e538ac6
...
@@ -21,9 +21,9 @@ $this->title = 'Welcome to Gii';
...
@@ -21,9 +21,9 @@ $this->title = 'Welcome to Gii';
<div
class=
"row"
>
<div
class=
"row"
>
<?php
foreach
(
$generators
as
$id
=>
$generator
)
:
?>
<?php
foreach
(
$generators
as
$id
=>
$generator
)
:
?>
<div
class=
"generator col-lg-4"
>
<div
class=
"generator col-lg-4"
>
<h3>
<?=
Html
::
encode
(
$generator
->
getName
());
?>
</h3>
<h3>
<?=
Html
::
encode
(
$generator
->
getName
())
?>
</h3>
<p>
<?=
$generator
->
getDescription
();
?>
</p>
<p>
<?=
$generator
->
getDescription
()
?>
</p>
<p>
<?=
Html
::
a
(
'Start »'
,
[
'default/view'
,
'id'
=>
$id
],
[
'class'
=>
'btn btn-default'
]);
?>
</p>
<p>
<?=
Html
::
a
(
'Start »'
,
[
'default/view'
,
'id'
=>
$id
],
[
'class'
=>
'btn btn-default'
])
?>
</p>
</div>
</div>
<?php
endforeach
;
?>
<?php
endforeach
;
?>
</div>
</div>
...
...
This diff is collapsed.
Click to expand it.
framework/yii/gii/views/default/view.php
View file @
6e538ac6
...
@@ -24,9 +24,9 @@ foreach ($generator->templates as $name => $path) {
...
@@ -24,9 +24,9 @@ foreach ($generator->templates as $name => $path) {
}
}
?>
?>
<div
class=
"default-view"
>
<div
class=
"default-view"
>
<h1>
<?=
Html
::
encode
(
$this
->
title
);
?>
</h1>
<h1>
<?=
Html
::
encode
(
$this
->
title
)
?>
</h1>
<p>
<?=
$generator
->
getDescription
();
?>
</p>
<p>
<?=
$generator
->
getDescription
()
?>
</p>
<?php
$form
=
ActiveForm
::
begin
([
<?php
$form
=
ActiveForm
::
begin
([
'id'
=>
"
$id
-generator"
,
'id'
=>
"
$id
-generator"
,
...
@@ -45,10 +45,10 @@ foreach ($generator->templates as $name => $path) {
...
@@ -45,10 +45,10 @@ foreach ($generator->templates as $name => $path) {
Please select which set of the templates should be used to generated the code.
Please select which set of the templates should be used to generated the code.
'
);
?>
'
);
?>
<div
class=
"form-group"
>
<div
class=
"form-group"
>
<?=
Html
::
submitButton
(
'Preview'
,
[
'name'
=>
'preview'
,
'class'
=>
'btn btn-primary'
]);
?>
<?=
Html
::
submitButton
(
'Preview'
,
[
'name'
=>
'preview'
,
'class'
=>
'btn btn-primary'
])
?>
<?php
if
(
isset
(
$files
))
:
?>
<?php
if
(
isset
(
$files
))
:
?>
<?=
Html
::
submitButton
(
'Generate'
,
[
'name'
=>
'generate'
,
'class'
=>
'btn btn-success'
]);
?>
<?=
Html
::
submitButton
(
'Generate'
,
[
'name'
=>
'generate'
,
'class'
=>
'btn btn-success'
])
?>
<?php
endif
;
?>
<?php
endif
;
?>
</div>
</div>
</div>
</div>
...
...
This diff is collapsed.
Click to expand it.
framework/yii/gii/views/default/view/files.php
View file @
6e538ac6
...
@@ -33,11 +33,11 @@ use yii\gii\CodeFile;
...
@@ -33,11 +33,11 @@ use yii\gii\CodeFile;
</thead>
</thead>
<tbody>
<tbody>
<?php
foreach
(
$files
as
$file
)
:
?>
<?php
foreach
(
$files
as
$file
)
:
?>
<tr
class=
"
<?=
$file
->
operation
;
?>
"
>
<tr
class=
"
<?=
$file
->
operation
?>
"
>
<td
class=
"file"
>
<td
class=
"file"
>
<?=
Html
::
a
(
Html
::
encode
(
$file
->
getRelativePath
()),
[
'preview'
,
'file'
=>
$file
->
id
],
[
'class'
=>
'preview-code'
,
'data-title'
=>
$file
->
getRelativePath
()]);
?>
<?=
Html
::
a
(
Html
::
encode
(
$file
->
getRelativePath
()),
[
'preview'
,
'file'
=>
$file
->
id
],
[
'class'
=>
'preview-code'
,
'data-title'
=>
$file
->
getRelativePath
()])
?>
<?php
if
(
$file
->
operation
===
CodeFile
::
OP_OVERWRITE
)
:
?>
<?php
if
(
$file
->
operation
===
CodeFile
::
OP_OVERWRITE
)
:
?>
<?=
Html
::
a
(
'diff'
,
[
'diff'
,
'file'
=>
$file
->
id
],
[
'class'
=>
'diff-code label label-warning'
,
'data-title'
=>
$file
->
getRelativePath
()]);
?>
<?=
Html
::
a
(
'diff'
,
[
'diff'
,
'file'
=>
$file
->
id
],
[
'class'
=>
'diff-code label label-warning'
,
'data-title'
=>
$file
->
getRelativePath
()])
?>
<?php
endif
;
?>
<?php
endif
;
?>
</td>
</td>
<td
class=
"action"
>
<td
class=
"action"
>
...
...
This diff is collapsed.
Click to expand it.
framework/yii/gii/views/default/view/results.php
View file @
6e538ac6
...
@@ -18,5 +18,5 @@ use yii\gii\CodeFile;
...
@@ -18,5 +18,5 @@ use yii\gii\CodeFile;
echo
'<div class="alert alert-success">'
.
$generator
->
successMessage
()
.
'</div>'
;
echo
'<div class="alert alert-success">'
.
$generator
->
successMessage
()
.
'</div>'
;
}
}
?>
?>
<pre>
<?=
nl2br
(
$results
);
?>
</pre>
<pre>
<?=
nl2br
(
$results
)
?>
</pre>
</div>
</div>
This diff is collapsed.
Click to expand it.
framework/yii/gii/views/layouts/generator.php
View file @
6e538ac6
...
@@ -25,7 +25,7 @@ $activeGenerator = Yii::$app->controller->generator;
...
@@ -25,7 +25,7 @@ $activeGenerator = Yii::$app->controller->generator;
</div>
</div>
</div>
</div>
<div
class=
"col-lg-9"
>
<div
class=
"col-lg-9"
>
<?=
$content
;
?>
<?=
$content
?>
</div>
</div>
</div>
</div>
<?php
$this
->
endContent
();
?>
<?php
$this
->
endContent
();
?>
This diff is collapsed.
Click to expand it.
framework/yii/gii/views/layouts/main.php
View file @
6e538ac6
...
@@ -14,7 +14,7 @@ $asset = yii\gii\GiiAsset::register($this);
...
@@ -14,7 +14,7 @@ $asset = yii\gii\GiiAsset::register($this);
<html
lang=
"en"
>
<html
lang=
"en"
>
<head>
<head>
<meta
charset=
"utf-8"
/>
<meta
charset=
"utf-8"
/>
<title>
<?=
Html
::
encode
(
$this
->
title
);
?>
</title>
<title>
<?=
Html
::
encode
(
$this
->
title
)
?>
</title>
<?php
$this
->
head
();
?>
<?php
$this
->
head
();
?>
</head>
</head>
<body>
<body>
...
@@ -37,13 +37,13 @@ NavBar::end();
...
@@ -37,13 +37,13 @@ NavBar::end();
?>
?>
<div
class=
"container"
>
<div
class=
"container"
>
<?=
$content
;
?>
<?=
$content
?>
</div>
</div>
<footer
class=
"footer"
>
<footer
class=
"footer"
>
<div
class=
"container"
>
<div
class=
"container"
>
<p
class=
"pull-left"
>
A Product of
<a
href=
"http://www.yiisoft.com/"
>
Yii Software LLC
</a></p>
<p
class=
"pull-left"
>
A Product of
<a
href=
"http://www.yiisoft.com/"
>
Yii Software LLC
</a></p>
<p
class=
"pull-right"
>
<?=
Yii
::
powered
();
?>
</p>
<p
class=
"pull-right"
>
<?=
Yii
::
powered
()
?>
</p>
</div>
</div>
</footer>
</footer>
...
...
This diff is collapsed.
Click to expand it.
framework/yii/requirements/views/web/index.php
View file @
6e538ac6
...
@@ -52,18 +52,18 @@
...
@@ -52,18 +52,18 @@
<table
class=
"table table-bordered"
>
<table
class=
"table table-bordered"
>
<tr><th>
Name
</th><th>
Result
</th><th>
Required By
</th><th>
Memo
</th></tr>
<tr><th>
Name
</th><th>
Result
</th><th>
Required By
</th><th>
Memo
</th></tr>
<?php
foreach
(
$requirements
as
$requirement
)
:
?>
<?php
foreach
(
$requirements
as
$requirement
)
:
?>
<tr
class=
"
<?=
$requirement
[
'condition'
]
?
'success'
:
(
$requirement
[
'mandatory'
]
?
'error'
:
'warning'
);
?>
"
>
<tr
class=
"
<?=
$requirement
[
'condition'
]
?
'success'
:
(
$requirement
[
'mandatory'
]
?
'error'
:
'warning'
)
?>
"
>
<td>
<td>
<?=
$requirement
[
'name'
];
?>
<?=
$requirement
[
'name'
]
?>
</td>
</td>
<td>
<td>
<span
class=
"result"
>
<?=
$requirement
[
'condition'
]
?
'Passed'
:
(
$requirement
[
'mandatory'
]
?
'Failed'
:
'Warning'
);
?>
</span>
<span
class=
"result"
>
<?=
$requirement
[
'condition'
]
?
'Passed'
:
(
$requirement
[
'mandatory'
]
?
'Failed'
:
'Warning'
)
?>
</span>
</td>
</td>
<td>
<td>
<?=
$requirement
[
'by'
];
?>
<?=
$requirement
[
'by'
]
?>
</td>
</td>
<td>
<td>
<?=
$requirement
[
'memo'
];
?>
<?=
$requirement
[
'memo'
]
?>
</td>
</td>
</tr>
</tr>
<?php
endforeach
;
?>
<?php
endforeach
;
?>
...
@@ -74,7 +74,7 @@
...
@@ -74,7 +74,7 @@
<hr>
<hr>
<div
class=
"footer"
>
<div
class=
"footer"
>
<p>
Server:
<?=
$this
->
getServerInfo
()
.
' '
.
$this
->
getNowDate
();
?>
</p>
<p>
Server:
<?=
$this
->
getServerInfo
()
.
' '
.
$this
->
getNowDate
()
?>
</p>
<p>
Powered by
<a
href=
"http://www.yiiframework.com/"
rel=
"external"
>
Yii Framework
</a></p>
<p>
Powered by
<a
href=
"http://www.yiiframework.com/"
rel=
"external"
>
Yii Framework
</a></p>
</div>
</div>
</div>
</div>
...
...
This diff is collapsed.
Click to expand it.
framework/yii/views/errorHandler/callStackItem.php
View file @
6e538ac6
...
@@ -12,15 +12,15 @@
...
@@ -12,15 +12,15 @@
*/
*/
?>
?>
<li
class=
"
<?php
if
(
!
$handler
->
isCoreFile
(
$file
)
||
$index
===
1
)
echo
'application'
;
?>
call-stack-item"
<li
class=
"
<?php
if
(
!
$handler
->
isCoreFile
(
$file
)
||
$index
===
1
)
echo
'application'
;
?>
call-stack-item"
data-line=
"
<?=
(
int
)(
$line
-
$begin
);
?>
"
>
data-line=
"
<?=
(
int
)(
$line
-
$begin
)
?>
"
>
<div
class=
"element-wrap"
>
<div
class=
"element-wrap"
>
<div
class=
"element"
>
<div
class=
"element"
>
<span
class=
"item-number"
>
<?=
(
int
)
$index
;
?>
.
</span>
<span
class=
"item-number"
>
<?=
(
int
)
$index
?>
.
</span>
<span
class=
"text"
>
<?php
if
(
$file
!==
null
)
echo
'in '
.
$handler
->
htmlEncode
(
$file
);
?>
</span>
<span
class=
"text"
>
<?php
if
(
$file
!==
null
)
echo
'in '
.
$handler
->
htmlEncode
(
$file
);
?>
</span>
<?php
if
(
$method
!==
null
)
:
?>
<?php
if
(
$method
!==
null
)
:
?>
<span
class=
"call"
>
<span
class=
"call"
>
<?php
if
(
$file
!==
null
)
echo
'–'
?>
<?php
if
(
$file
!==
null
)
echo
'–'
?>
<?php
if
(
$class
!==
null
)
echo
$handler
->
addTypeLinks
(
$class
)
.
'::'
;
?><?=
$handler
->
addTypeLinks
(
$method
.
'()'
);
?>
<?php
if
(
$class
!==
null
)
echo
$handler
->
addTypeLinks
(
$class
)
.
'::'
;
?><?=
$handler
->
addTypeLinks
(
$method
.
'()'
)
?>
</span>
</span>
<?php
endif
;
?>
<?php
endif
;
?>
<span
class=
"at"
>
<?php
if
(
$line
!==
null
)
echo
'at line'
;
?>
</span>
<span
class=
"at"
>
<?php
if
(
$line
!==
null
)
echo
'at line'
;
?>
</span>
...
@@ -32,7 +32,7 @@
...
@@ -32,7 +32,7 @@
<div
class=
"error-line"
></div>
<div
class=
"error-line"
></div>
<?php
for
(
$i
=
$begin
;
$i
<=
$end
;
++
$i
)
:
?>
<div
class=
"hover-line"
></div>
<?php
endfor
;
?>
<?php
for
(
$i
=
$begin
;
$i
<=
$end
;
++
$i
)
:
?>
<div
class=
"hover-line"
></div>
<?php
endfor
;
?>
<div
class=
"code"
>
<div
class=
"code"
>
<?php
for
(
$i
=
$begin
;
$i
<=
$end
;
++
$i
)
:
?>
<span
class=
"lines-item"
>
<?=
(
int
)(
$i
+
1
);
?>
</span>
<?php
endfor
;
?>
<?php
for
(
$i
=
$begin
;
$i
<=
$end
;
++
$i
)
:
?>
<span
class=
"lines-item"
>
<?=
(
int
)(
$i
+
1
)
?>
</span>
<?php
endfor
;
?>
<pre>
<?php
<pre>
<?php
// fill empty lines with a whitespace to avoid rendering problems in opera
// fill empty lines with a whitespace to avoid rendering problems in opera
for
(
$i
=
$begin
;
$i
<=
$end
;
++
$i
)
{
for
(
$i
=
$begin
;
$i
<=
$end
;
++
$i
)
{
...
...
This diff is collapsed.
Click to expand it.
framework/yii/views/errorHandler/error.php
View file @
6e538ac6
...
@@ -28,7 +28,7 @@ if ($exception instanceof \yii\base\UserException) {
...
@@ -28,7 +28,7 @@ if ($exception instanceof \yii\base\UserException) {
<html>
<html>
<head>
<head>
<meta
charset=
"utf-8"
/>
<meta
charset=
"utf-8"
/>
<title>
<?=
$handler
->
htmlEncode
(
$name
);
?>
</title>
<title>
<?=
$handler
->
htmlEncode
(
$name
)
?>
</title>
<style>
<style>
body
{
body
{
...
@@ -69,8 +69,8 @@ if ($exception instanceof \yii\base\UserException) {
...
@@ -69,8 +69,8 @@ if ($exception instanceof \yii\base\UserException) {
</head>
</head>
<body>
<body>
<h1>
<?=
$handler
->
htmlEncode
(
$name
);
?>
</h1>
<h1>
<?=
$handler
->
htmlEncode
(
$name
)
?>
</h1>
<h2>
<?=
nl2br
(
$handler
->
htmlEncode
(
$message
));
?>
</h2>
<h2>
<?=
nl2br
(
$handler
->
htmlEncode
(
$message
))
?>
</h2>
<p>
<p>
The above error occurred while the Web server was processing your request.
The above error occurred while the Web server was processing your request.
</p>
</p>
...
@@ -78,7 +78,7 @@ if ($exception instanceof \yii\base\UserException) {
...
@@ -78,7 +78,7 @@ if ($exception instanceof \yii\base\UserException) {
Please contact us if you think this is a server error. Thank you.
Please contact us if you think this is a server error. Thank you.
</p>
</p>
<div
class=
"version"
>
<div
class=
"version"
>
<?=
date
(
'Y-m-d H:i:s'
,
time
());
?>
<?=
date
(
'Y-m-d H:i:s'
,
time
())
?>
</div>
</div>
<?php
if
(
method_exists
(
$this
,
'endBody'
))
$this
->
endBody
();
// to allow injecting code into body (mostly by Yii Debug Toolbar) ?>
<?php
if
(
method_exists
(
$this
,
'endBody'
))
$this
->
endBody
();
// to allow injecting code into body (mostly by Yii Debug Toolbar) ?>
</
body
>
</
body
>
...
...
This diff is collapsed.
Click to expand it.
framework/yii/views/errorHandler/exception.php
View file @
6e538ac6
...
@@ -342,8 +342,8 @@ pre .diff .change{
...
@@ -342,8 +342,8 @@ pre .diff .change{
<?php
if
(
$exception
instanceof
\yii\base\ErrorException
)
:
?>
<?php
if
(
$exception
instanceof
\yii\base\ErrorException
)
:
?>
<img
src=
"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEwAAABACAIAAAA/NwYHAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyBpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNSBXaW5kb3dzIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjU4QjIxQTgwQzU1MDExRTJBNEMxRURGMUEzMjA1M0UxIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjU4QjIxQTgxQzU1MDExRTJBNEMxRURGMUEzMjA1M0UxIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6NThCMjFBN0VDNTUwMTFFMkE0QzFFREYxQTMyMDUzRTEiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6NThCMjFBN0ZDNTUwMTFFMkE0QzFFREYxQTMyMDUzRTEiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz74UrDRAAAOWUlEQVR42txb2W8T1xf2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"
alt=
"Gears"
/>
<img
src=
"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEwAAABACAIAAAA/NwYHAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyBpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNSBXaW5kb3dzIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjU4QjIxQTgwQzU1MDExRTJBNEMxRURGMUEzMjA1M0UxIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjU4QjIxQTgxQzU1MDExRTJBNEMxRURGMUEzMjA1M0UxIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6NThCMjFBN0VDNTUwMTFFMkE0QzFFREYxQTMyMDUzRTEiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6NThCMjFBN0ZDNTUwMTFFMkE0QzFFREYxQTMyMDUzRTEiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz74UrDRAAAOWUlEQVR42txb2W8T1xf2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"
alt=
"Gears"
/>
<h1>
<h1>
<span>
<?=
$handler
->
htmlEncode
(
$exception
->
getName
());
?>
</span>
<span>
<?=
$handler
->
htmlEncode
(
$exception
->
getName
())
?>
</span>
–
<?=
$handler
->
addTypeLinks
(
get_class
(
$exception
));
?>
–
<?=
$handler
->
addTypeLinks
(
get_class
(
$exception
))
?>
</h1>
</h1>
<?php
else
:
?>
<?php
else
:
?>
<img
src=
"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAAA6CAIAAACPssguAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyBpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNSBXaW5kb3dzIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjcwRURBOUQxQzQ3RDExRTJCRjVFODJDQkFGODFDN0VBIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjcwRURBOUQyQzQ3RDExRTJCRjVFODJDQkFGODFDN0VBIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6NzBFREE5Q0ZDNDdEMTFFMkJGNUU4MkNCQUY4MUM3RUEiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6NzBFREE5RDBDNDdEMTFFMkJGNUU4MkNCQUY4MUM3RUEiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz4L6mYsAAAE9klEQVR42tRa227aTBDGiwkhJtD8EanSQ6RKqKpSBbWqql5U7QP0TfsSvWhvStMEO6cqDUpjRylSQ1QC+IQN/mdrhBIb413vgsheIDDr9XwzOzPfzFrwPC/Fe8Cauiybe3uersNPQZJylYr04oUgCNyfJXJfcTAYXH/5YoH0qjq66LbbTrtdfPcOITTXALDuf/40FSWlabeuq6rpeZkHD6Ryma8dOOvDdV19Zycg/XBoml6r9ft9vk9EnNV/dOT8+RM1oXdxof/4wdfrEF/1G7Va+uIiagL8BfaBafMIAHy38/17/+/fydNgAkyDyXMHwLEsS1EmqH9kBOvgACbPFwDQaPfr11S9TjT7+JijEfgAsFst8/CQYv7BQe/6el4AQGTsfPuGbqSt2CGcnrarVS4hlRUAxETz9+/eyQntjXAL3MgeUhG7+vXtbSr1Dx+sqoYss3sCYlS/cXLinJ8nu713emqoKqMRmAD4xAElBQA3GpA62DwBsagfiIN7ecnyeHZyIbKoP4o46KurY2+Rrq7CeQ08YenZs0wmM1MAI+KQDv3VKpd7r1+L2WwQsGH0q9VCyN3dZrOrKPdevUpGsxMCmEAcMqVSaWNjcXExcN00zRbQ7BAAWMSs1ZY2N7NLSzMCMJk4ZBFaXl4OAxBF0Yza68fH3Z2dzNu3Ceo1lMB3raurScQhgqjBDhGiibS1v98zzVlEIax+CJ0TM9fYqAIXB9HRBsiFXq0myGuIVv2xxGGQNCaCVcG2tCGVDkBi4jBU80ThYFlwLVojICr1kxAHFLHRsWoNgzu5oABASBw8247ygVScZJhcyDIVuUDk6tf39oiIg+exUAOwMNiZfAVSAI7jGPv7sSUvhwLl/Jyqc0EEwA+dsR2H+EFWy4OdwdqERiACQNhxGIaaaCcWyDY3Zni7u2BzPgDoOg64Yo92YvJ43e2CzUlCKmIlDsSZ2FcG4Qq4faQoJO0jRKJ+uszFq+tWr5PkNRRPHM7O2IWBpdxGYxrkAk2DODihbAqKdJpNkRIDJhdxniDGEgdavgpSWp8+XX7+HADg9vsJCnDcPnr+XHr0KKpeE6fScdA0l1P7AIwAu2BxfR3qIYotREEcpj8mkwsxkjjs7iYmDuRdCXJykSuXx3YuxEji0O2mE0lvlEpWpZK6vWsxv2s0BCjeE1kVk4ujo2KlEvYEkZE4jMlBCK1sbUFdf7NCx22YlRVHURKuCeSiVpM2N8NGEFmJwzgAIH2hUAhYAD6vGQ6J/bOpe2/eBDoXiJ04jNm1CAVsDT8Zj7ijyAViJQ6zHPV6Z3s7kNfQrcylqlCVpuZ42IeHgbMpdJM4QD2auFc+mxE+m0JUHQfSqHd2Fsg7mMxxWjxwNiX43yBzNT9+9GSZj6I2NsKZH5e5Y9+hSODQ79+vfvjgP0K8SRzSvCw9jgvxJBe/fpmaln/yBAe3WXYcOHYuRmdTCFctmsah4zBjhtdo+D08BGHVhs1zd9Q/MgKIDcJjCwzyefv+/dRdG86/zItzvri+7knS3ZLefPgQPX7sMxSUy+W8ly+NtbW7Ir2+tjaoVHL5fDqdFgFENpstlMtQ/bdlOc3pJZLpjX6x6G1t/ff0KegdH1v96yV7EEk7nU6r1bJtm+PrVPx9FyFQd7FYBMa+sLAwBODnMgirAAM+p/EqLDcuJAiwbaCsgU+fsf8vwADjle3ME1OGEwAAAABJRU5ErkJggg=="
alt=
"Attention"
/>
<img
src=
"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAAA6CAIAAACPssguAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyBpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNSBXaW5kb3dzIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjcwRURBOUQxQzQ3RDExRTJCRjVFODJDQkFGODFDN0VBIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjcwRURBOUQyQzQ3RDExRTJCRjVFODJDQkFGODFDN0VBIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6NzBFREE5Q0ZDNDdEMTFFMkJGNUU4MkNCQUY4MUM3RUEiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6NzBFREE5RDBDNDdEMTFFMkJGNUU4MkNCQUY4MUM3RUEiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz4L6mYsAAAE9klEQVR42tRa227aTBDGiwkhJtD8EanSQ6RKqKpSBbWqql5U7QP0TfsSvWhvStMEO6cqDUpjRylSQ1QC+IQN/mdrhBIb413vgsheIDDr9XwzOzPfzFrwPC/Fe8Cauiybe3uersNPQZJylYr04oUgCNyfJXJfcTAYXH/5YoH0qjq66LbbTrtdfPcOITTXALDuf/40FSWlabeuq6rpeZkHD6Ryma8dOOvDdV19Zycg/XBoml6r9ft9vk9EnNV/dOT8+RM1oXdxof/4wdfrEF/1G7Va+uIiagL8BfaBafMIAHy38/17/+/fydNgAkyDyXMHwLEsS1EmqH9kBOvgACbPFwDQaPfr11S9TjT7+JijEfgAsFst8/CQYv7BQe/6el4AQGTsfPuGbqSt2CGcnrarVS4hlRUAxETz9+/eyQntjXAL3MgeUhG7+vXtbSr1Dx+sqoYss3sCYlS/cXLinJ8nu713emqoKqMRmAD4xAElBQA3GpA62DwBsagfiIN7ecnyeHZyIbKoP4o46KurY2+Rrq7CeQ08YenZs0wmM1MAI+KQDv3VKpd7r1+L2WwQsGH0q9VCyN3dZrOrKPdevUpGsxMCmEAcMqVSaWNjcXExcN00zRbQ7BAAWMSs1ZY2N7NLSzMCMJk4ZBFaXl4OAxBF0Yza68fH3Z2dzNu3Ceo1lMB3raurScQhgqjBDhGiibS1v98zzVlEIax+CJ0TM9fYqAIXB9HRBsiFXq0myGuIVv2xxGGQNCaCVcG2tCGVDkBi4jBU80ThYFlwLVojICr1kxAHFLHRsWoNgzu5oABASBw8247ygVScZJhcyDIVuUDk6tf39oiIg+exUAOwMNiZfAVSAI7jGPv7sSUvhwLl/Jyqc0EEwA+dsR2H+EFWy4OdwdqERiACQNhxGIaaaCcWyDY3Zni7u2BzPgDoOg64Yo92YvJ43e2CzUlCKmIlDsSZ2FcG4Qq4faQoJO0jRKJ+uszFq+tWr5PkNRRPHM7O2IWBpdxGYxrkAk2DODihbAqKdJpNkRIDJhdxniDGEgdavgpSWp8+XX7+HADg9vsJCnDcPnr+XHr0KKpeE6fScdA0l1P7AIwAu2BxfR3qIYotREEcpj8mkwsxkjjs7iYmDuRdCXJykSuXx3YuxEji0O2mE0lvlEpWpZK6vWsxv2s0BCjeE1kVk4ujo2KlEvYEkZE4jMlBCK1sbUFdf7NCx22YlRVHURKuCeSiVpM2N8NGEFmJwzgAIH2hUAhYAD6vGQ6J/bOpe2/eBDoXiJ04jNm1CAVsDT8Zj7ijyAViJQ6zHPV6Z3s7kNfQrcylqlCVpuZ42IeHgbMpdJM4QD2auFc+mxE+m0JUHQfSqHd2Fsg7mMxxWjxwNiX43yBzNT9+9GSZj6I2NsKZH5e5Y9+hSODQ79+vfvjgP0K8SRzSvCw9jgvxJBe/fpmaln/yBAe3WXYcOHYuRmdTCFctmsah4zBjhtdo+D08BGHVhs1zd9Q/MgKIDcJjCwzyefv+/dRdG86/zItzvri+7knS3ZLefPgQPX7sMxSUy+W8ly+NtbW7Ir2+tjaoVHL5fDqdFgFENpstlMtQ/bdlOc3pJZLpjX6x6G1t/ff0KegdH1v96yV7EEk7nU6r1bJtm+PrVPx9FyFQd7FYBMa+sLAwBODnMgirAAM+p/EqLDcuJAiwbaCsgU+fsf8vwADjle3ME1OGEwAAAABJRU5ErkJggg=="
alt=
"Attention"
/>
...
@@ -359,13 +359,13 @@ pre .diff .change{
...
@@ -359,13 +359,13 @@ pre .diff .change{
}
}
?>
</h1>
?>
</h1>
<?php
endif
;
?>
<?php
endif
;
?>
<h2>
<?=
$handler
->
htmlEncode
(
$exception
->
getMessage
());
?>
</h2>
<h2>
<?=
$handler
->
htmlEncode
(
$exception
->
getMessage
())
?>
</h2>
<?=
$handler
->
renderPreviousExceptions
(
$exception
);
?>
<?=
$handler
->
renderPreviousExceptions
(
$exception
)
?>
</div>
</div>
<div
class=
"call-stack"
>
<div
class=
"call-stack"
>
<ul>
<ul>
<?=
$handler
->
renderCallStackItem
(
$exception
->
getFile
(),
$exception
->
getLine
(),
null
,
null
,
1
);
?>
<?=
$handler
->
renderCallStackItem
(
$exception
->
getFile
(),
$exception
->
getLine
(),
null
,
null
,
1
)
?>
<?php
for
(
$i
=
0
,
$trace
=
$exception
->
getTrace
(),
$length
=
count
(
$trace
);
$i
<
$length
;
++
$i
)
:
?>
<?php
for
(
$i
=
0
,
$trace
=
$exception
->
getTrace
(),
$length
=
count
(
$trace
);
$i
<
$length
;
++
$i
)
:
?>
<?=
$handler
->
renderCallStackItem
(
@
$trace
[
$i
][
'file'
]
?:
null
,
@
$trace
[
$i
][
'line'
]
?:
null
,
<?=
$handler
->
renderCallStackItem
(
@
$trace
[
$i
][
'file'
]
?:
null
,
@
$trace
[
$i
][
'line'
]
?:
null
,
@
$trace
[
$i
][
'class'
]
?:
null
,
@
$trace
[
$i
][
'function'
]
?:
null
,
$i
+
2
);
?>
@
$trace
[
$i
][
'class'
]
?:
null
,
@
$trace
[
$i
][
'function'
]
?:
null
,
$i
+
2
);
?>
...
@@ -375,15 +375,15 @@ pre .diff .change{
...
@@ -375,15 +375,15 @@ pre .diff .change{
<div
class=
"request"
>
<div
class=
"request"
>
<div
class=
"code"
>
<div
class=
"code"
>
<?=
$handler
->
renderRequest
();
?>
<?=
$handler
->
renderRequest
()
?>
</div>
</div>
</div>
</div>
<div
class=
"footer"
>
<div
class=
"footer"
>
<img
src=
"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAS4AAADeCAIAAAAMx3q5AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyBpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNSBXaW5kb3dzIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOkE5NkEyOTAzQzQ3RDExRTI4NjIzOEE2RkU5QTc4RTU0IiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOkE5NkEyOTA0QzQ3RDExRTI4NjIzOEE2RkU5QTc4RTU0Ij4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6QTk2QTI5MDFDNDdEMTFFMjg2MjM4QTZGRTlBNzhFNTQiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6QTk2QTI5MDJDNDdEMTFFMjg2MjM4QTZGRTlBNzhFNTQiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz4DYCAjAAAx4UlEQVR42ux9aZvjuJEm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"
alt=
"Yii Framework"
/>
<img
src=
"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAS4AAADeCAIAAAAMx3q5AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyBpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNSBXaW5kb3dzIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOkE5NkEyOTAzQzQ3RDExRTI4NjIzOEE2RkU5QTc4RTU0IiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOkE5NkEyOTA0QzQ3RDExRTI4NjIzOEE2RkU5QTc4RTU0Ij4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6QTk2QTI5MDFDNDdEMTFFMjg2MjM4QTZGRTlBNzhFNTQiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6QTk2QTI5MDJDNDdEMTFFMjg2MjM4QTZGRTlBNzhFNTQiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz4DYCAjAAAx4UlEQVR42ux9aZvjuJEm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"
alt=
"Yii Framework"
/>
<p
class=
"timestamp"
>
<?=
date
(
'Y-m-d, H:i:s'
);
?>
</p>
<p
class=
"timestamp"
>
<?=
date
(
'Y-m-d, H:i:s'
)
?>
</p>
<p>
<?=
$handler
->
createServerInformationLink
();
?>
</p>
<p>
<?=
$handler
->
createServerInformationLink
()
?>
</p>
<p><a
href=
"http://yiiframework.com/"
>
Yii Framework
</a>
/
<?=
$handler
->
createFrameworkVersionLink
();
?>
</p>
<p><a
href=
"http://yiiframework.com/"
>
Yii Framework
</a>
/
<?=
$handler
->
createFrameworkVersionLink
()
?>
</p>
</div>
</div>
<script
type=
"text/javascript"
>
<script
type=
"text/javascript"
>
...
...
This diff is collapsed.
Click to expand it.
framework/yii/views/errorHandler/previousException.php
View file @
6e538ac6
...
@@ -9,13 +9,13 @@
...
@@ -9,13 +9,13 @@
<h2>
<h2>
<span>
Caused by:
</span>
<span>
Caused by:
</span>
<?php
if
(
$exception
instanceof
\yii\base\Exception
)
:
?>
<?php
if
(
$exception
instanceof
\yii\base\Exception
)
:
?>
<span>
<?=
$handler
->
htmlEncode
(
$exception
->
getName
());
?>
</span>
–
<span>
<?=
$handler
->
htmlEncode
(
$exception
->
getName
())
?>
</span>
–
<?=
$handler
->
addTypeLinks
(
get_class
(
$exception
));
?>
<?=
$handler
->
addTypeLinks
(
get_class
(
$exception
))
?>
<?php
else
:
?>
<?php
else
:
?>
<span>
<?=
$handler
->
htmlEncode
(
get_class
(
$exception
));
?>
</span>
<span>
<?=
$handler
->
htmlEncode
(
get_class
(
$exception
))
?>
</span>
<?php
endif
;
?>
<?php
endif
;
?>
</h2>
</h2>
<h3>
<?=
$handler
->
htmlEncode
(
$exception
->
getMessage
());
?>
</h3>
<h3>
<?=
$handler
->
htmlEncode
(
$exception
->
getMessage
())
?>
</h3>
<p>
in
<span
class=
"file"
>
<?=
$exception
->
getFile
();
?>
</span>
at line
<span
class=
"line"
>
<?=
$exception
->
getLine
();
?>
</span></p>
<p>
in
<span
class=
"file"
>
<?=
$exception
->
getFile
()
?>
</span>
at line
<span
class=
"line"
>
<?=
$exception
->
getLine
()
?>
</span></p>
<?=
$handler
->
renderPreviousExceptions
(
$exception
);
?>
<?=
$handler
->
renderPreviousExceptions
(
$exception
)
?>
</div>
</div>
This diff is collapsed.
Click to expand it.
framework/yii/views/migration.php
View file @
6e538ac6
...
@@ -8,7 +8,7 @@
...
@@ -8,7 +8,7 @@
echo
"<?php
\n
"
;
echo
"<?php
\n
"
;
?>
?>
class
<?=
$className
;
?>
extends \yii\db\Migration
class
<?=
$className
?>
extends \yii\db\Migration
{
{
public function up()
public function up()
{
{
...
@@ -17,7 +17,7 @@ class <?=$className; ?> extends \yii\db\Migration
...
@@ -17,7 +17,7 @@ class <?=$className; ?> extends \yii\db\Migration
public function down()
public function down()
{
{
echo "
<?=
$className
;
?>
cannot be reverted.\n";
echo "
<?=
$className
?>
cannot be reverted.\n";
return false;
return false;
}
}
}
}
This diff is collapsed.
Click to expand it.
framework/yii/web/AssetBundle.php
View file @
6e538ac6
...
@@ -15,8 +15,9 @@ use yii\base\View;
...
@@ -15,8 +15,9 @@ use yii\base\View;
/**
/**
* AssetBundle represents a collection of asset files, such as CSS, JS, images.
* AssetBundle represents a collection of asset files, such as CSS, JS, images.
*
*
* Each asset bundle has a unique name that globally identifies it among all asset bundles
* Each asset bundle has a unique name that globally identifies it among all asset bundles used in an application.
* used in an application.
* The name is the [fully qualified class name](http://php.net/manual/en/language.namespaces.rules.php)
* of the class representing it.
*
*
* An asset bundle can depend on other asset bundles. When registering an asset bundle
* An asset bundle can depend on other asset bundles. When registering an asset bundle
* with a view, all its dependent asset bundles will be automatically registered.
* with a view, all its dependent asset bundles will be automatically registered.
...
@@ -130,13 +131,9 @@ class AssetBundle extends Object
...
@@ -130,13 +131,9 @@ class AssetBundle extends Object
/**
/**
* Registers the CSS and JS files with the given view.
* Registers the CSS and JS files with the given view.
* It will then try to convert non-CSS or JS files (e.g. LESS, Sass) into the corresponding
* @param \yii\base\View $view the view that the asset files are to be registered with.
* CSS or JS files using [[AssetManager::converter|asset converter]].
* @param \yii\base\View $view the view that the asset files to be registered with.
* @throws InvalidConfigException if [[baseUrl]] or [[basePath]] is not set when the bundle
* contains internal CSS or JS files.
*/
*/
public
function
registerAssets
(
$view
)
public
function
registerAsset
File
s
(
$view
)
{
{
foreach
(
$this
->
js
as
$js
)
{
foreach
(
$this
->
js
as
$js
)
{
if
(
strpos
(
$js
,
'/'
)
!==
0
&&
strpos
(
$js
,
'://'
)
===
false
)
{
if
(
strpos
(
$js
,
'/'
)
!==
0
&&
strpos
(
$js
,
'://'
)
===
false
)
{
...
@@ -156,6 +153,8 @@ class AssetBundle extends Object
...
@@ -156,6 +153,8 @@ class AssetBundle extends Object
/**
/**
* Publishes the asset bundle if its source code is not under Web-accessible directory.
* Publishes the asset bundle if its source code is not under Web-accessible directory.
* It will also try to convert non-CSS or JS files (e.g. LESS, Sass) into the corresponding
* CSS or JS files using [[AssetManager::converter|asset converter]].
* @param AssetManager $am the asset manager to perform the asset publishing
* @param AssetManager $am the asset manager to perform the asset publishing
* @throws InvalidConfigException if [[baseUrl]] or [[basePath]] is not set when the bundle
* @throws InvalidConfigException if [[baseUrl]] or [[basePath]] is not set when the bundle
* contains internal CSS or JS files.
* contains internal CSS or JS files.
...
...
This diff is collapsed.
Click to expand it.
framework/yii/web/AssetManager.php
View file @
6e538ac6
...
@@ -95,10 +95,12 @@ class AssetManager extends Component
...
@@ -95,10 +95,12 @@ class AssetManager extends Component
* it will treat `$name` as the class of the asset bundle and create a new instance of it.
* it will treat `$name` as the class of the asset bundle and create a new instance of it.
*
*
* @param string $name the class name of the asset bundle
* @param string $name the class name of the asset bundle
* @param boolean $publish whether to publish the asset files in the asset bundle before it is returned.
* If you set this false, you must manually call `AssetBundle::publish()` to publish the asset files.
* @return AssetBundle the asset bundle instance
* @return AssetBundle the asset bundle instance
* @throws InvalidConfigException if $name does not refer to a valid asset bundle
* @throws InvalidConfigException if $name does not refer to a valid asset bundle
*/
*/
public
function
getBundle
(
$name
)
public
function
getBundle
(
$name
,
$publish
=
true
)
{
{
if
(
isset
(
$this
->
bundles
[
$name
]))
{
if
(
isset
(
$this
->
bundles
[
$name
]))
{
if
(
$this
->
bundles
[
$name
]
instanceof
AssetBundle
)
{
if
(
$this
->
bundles
[
$name
]
instanceof
AssetBundle
)
{
...
@@ -111,8 +113,10 @@ class AssetManager extends Component
...
@@ -111,8 +113,10 @@ class AssetManager extends Component
}
else
{
}
else
{
$bundle
=
Yii
::
createObject
(
$name
);
$bundle
=
Yii
::
createObject
(
$name
);
}
}
/** @var AssetBundle $bundle */
if
(
$publish
)
{
$bundle
->
publish
(
$this
);
/** @var AssetBundle $bundle */
$bundle
->
publish
(
$this
);
}
return
$this
->
bundles
[
$name
]
=
$bundle
;
return
$this
->
bundles
[
$name
]
=
$bundle
;
}
}
...
...
This diff is collapsed.
Click to expand it.
framework/yii/web/User.php
View file @
6e538ac6
...
@@ -10,7 +10,6 @@ namespace yii\web;
...
@@ -10,7 +10,6 @@ namespace yii\web;
use
Yii
;
use
Yii
;
use
yii\base\Component
;
use
yii\base\Component
;
use
yii\base\InvalidConfigException
;
use
yii\base\InvalidConfigException
;
use
yii\base\InvalidParamException
;
/**
/**
* User is the class for the "user" application component that manages the user authentication status.
* User is the class for the "user" application component that manages the user authentication status.
...
...
This diff is collapsed.
Click to expand it.
tests/unit/data/ar/Customer.php
View file @
6e538ac6
...
@@ -24,7 +24,7 @@ class Customer extends ActiveRecord
...
@@ -24,7 +24,7 @@ class Customer extends ActiveRecord
public
function
getOrders
()
public
function
getOrders
()
{
{
return
$this
->
hasMany
(
'Order'
,
[
'customer_id'
=>
'id'
])
->
orderBy
(
'id'
);
return
$this
->
hasMany
(
Order
::
className
()
,
[
'customer_id'
=>
'id'
])
->
orderBy
(
'id'
);
}
}
public
static
function
active
(
$query
)
public
static
function
active
(
$query
)
...
...
This diff is collapsed.
Click to expand it.
tests/unit/data/ar/Order.php
View file @
6e538ac6
...
@@ -19,17 +19,17 @@ class Order extends ActiveRecord
...
@@ -19,17 +19,17 @@ class Order extends ActiveRecord
public
function
getCustomer
()
public
function
getCustomer
()
{
{
return
$this
->
hasOne
(
'Customer'
,
[
'id'
=>
'customer_id'
]);
return
$this
->
hasOne
(
Customer
::
className
()
,
[
'id'
=>
'customer_id'
]);
}
}
public
function
getOrderItems
()
public
function
getOrderItems
()
{
{
return
$this
->
hasMany
(
'OrderItem'
,
[
'order_id'
=>
'id'
]);
return
$this
->
hasMany
(
OrderItem
::
className
()
,
[
'order_id'
=>
'id'
]);
}
}
public
function
getItems
()
public
function
getItems
()
{
{
return
$this
->
hasMany
(
'Item'
,
[
'id'
=>
'item_id'
])
return
$this
->
hasMany
(
Item
::
className
()
,
[
'id'
=>
'item_id'
])
->
via
(
'orderItems'
,
function
(
$q
)
{
->
via
(
'orderItems'
,
function
(
$q
)
{
// additional query configuration
// additional query configuration
})
->
orderBy
(
'id'
);
})
->
orderBy
(
'id'
);
...
@@ -37,7 +37,7 @@ class Order extends ActiveRecord
...
@@ -37,7 +37,7 @@ class Order extends ActiveRecord
public
function
getBooks
()
public
function
getBooks
()
{
{
return
$this
->
hasMany
(
'Item'
,
[
'id'
=>
'item_id'
])
return
$this
->
hasMany
(
Item
::
className
()
,
[
'id'
=>
'item_id'
])
->
viaTable
(
'tbl_order_item'
,
[
'order_id'
=>
'id'
])
->
viaTable
(
'tbl_order_item'
,
[
'order_id'
=>
'id'
])
->
where
([
'category_id'
=>
1
]);
->
where
([
'category_id'
=>
1
]);
}
}
...
...
This diff is collapsed.
Click to expand it.
tests/unit/data/ar/OrderItem.php
View file @
6e538ac6
...
@@ -19,11 +19,11 @@ class OrderItem extends ActiveRecord
...
@@ -19,11 +19,11 @@ class OrderItem extends ActiveRecord
public
function
getOrder
()
public
function
getOrder
()
{
{
return
$this
->
hasOne
(
'Order'
,
[
'id'
=>
'order_id'
]);
return
$this
->
hasOne
(
Order
::
className
()
,
[
'id'
=>
'order_id'
]);
}
}
public
function
getItem
()
public
function
getItem
()
{
{
return
$this
->
hasOne
(
'Item'
,
[
'id'
=>
'item_id'
]);
return
$this
->
hasOne
(
Item
::
className
()
,
[
'id'
=>
'item_id'
]);
}
}
}
}
This diff is collapsed.
Click to expand it.
tests/unit/data/views/layout.php
View file @
6e538ac6
...
@@ -14,7 +14,7 @@
...
@@ -14,7 +14,7 @@
<body>
<body>
<?php
$this
->
beginBody
();
?>
<?php
$this
->
beginBody
();
?>
<?=
$content
;
?>
<?=
$content
?>
<?php
$this
->
endBody
();
?>
<?php
$this
->
endBody
();
?>
</body>
</body>
...
...
This diff is collapsed.
Click to expand it.
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