php composer.phar dump-autoload -o
php -r "readfile('https://getcomposer.org/installer');" | php
php composer.phar <команда>
composer update
для установки новых пакетов и обновления уже существующих. При обновлении все установленные пакеты сохраняются в файл composer.lock, который хранит информацию о установленных версиях каждого пакета.php composer.phar install
, которая возьмёт нужные версии пакетов из composer.lock и установит их в папку vendor, а также обновит файл autoload-а. ->where('i.isActive = true')
{% for category in categories if category.items is not null %}
{{category.name}}
{% for item in category.items %}
- {{ item.name }}
{% endfor %}
{% endfor %}
$helper = $this->getConfigurationPool()->getContainer()->get('vich_uploader.templating.helper.uploader_helper');
$src = $helper->asset($this->getSubject(), 'image');
$formMapper->setHelps([
'picture' => "<img src=\"$src\" width=\"100\">",
]);
<?php
namespace AppBundle\DBAL;
use Doctrine\DBAL\Types\Type;
use Doctrine\DBAL\Platforms\AbstractPlatform;
abstract class EnumType extends Type
{
protected $name;
public static $VALUES = array();
public static function getValues()
{
return array_combine(static::$VALUES, static::$VALUES);
}
public function getSqlDeclaration(array $fieldDeclaration, AbstractPlatform $platform)
{
$values = array_map(function($val) { return "'".$val."'"; }, static::$VALUES);
return "ENUM(".implode(", ", $values).") COMMENT '(DC2Type:".$this->name.")'";
}
public function convertToPHPValue($value, AbstractPlatform $platform)
{
return $value;
}
public function convertToDatabaseValue($value, AbstractPlatform $platform)
{
if (!in_array($value, static::$VALUES)) {
throw new \InvalidArgumentException("Invalid value '$value' for enum '$this->name'.");
}
return $value;
}
public function getName()
{
return $this->name;
}
}
<?php
namespace AppBundle\DBAL;
class GenderType extends EnumType
{
protected $name = 'gender';
public static $VALUES = array('male', 'female');
}
doctrine:
dbal:
# ...
types:
gender: AppBundle\DBAL\GenderType
mapping_types:
enum: string
gender: gender
<?php
namespace AppBundle\Entity;
use Doctrine\ORM\Mapping as ORM;
use Gedmo\Mapping\Annotation as Gedmo;
/**
* @ORM\Entity
*/
class Person
{
// other fields
/**
* @var string
*
* @ORM\Column(type="gender")
*/
protected $gender;
// setters & getters
}
foreach (GenderType::$VALUES as $gender) {
echo $gender;
}
$form = $this->createForm(new SignInForm(), null, array(
'action' => $this->generateUrl('login_check'),
'method' => 'POST',
));
$form = $this->createForm(new SignInForm());
{% extends '::layout.html.twig'%}
{% block content %}
<ul>
{% for items in tree %}
{% for item in items %}
<li data-node="{{ item.id }}" style="position:relative;" class="list-group-item">
<a href="/wikiedit/{{ item.id }}">{{ item.name }}</a>
<i class="glyphicon glyphicon-remove pull-right" style="cursor:pointer;" onclick="R.wiki.delete({{ item.id }});"></i>
</li>
{% endfor %}
{% endfor %}
</ul>
{% endblock %}
$str .= $this->viewtree($arr, $r['id']);
вызывается сначала для массивов первой вложенности, а у них нет ключа id. Тут нужно сделать два разных метода - один будет обрабатывать первый уровень вложенности, а второй метод - сами элементы с данными.namespace YourBundle\Entity;
use Doctrine\ORM\Mapping as ORM;
/**
* @ORM\Entity
*/
class User
{
/**
* @ORM\Column(type="integer")
* @ORM\Id
* @ORM\GeneratedValue(strategy="AUTO")
*/
private $id;
/**
* @ORM\Column(type="string", length=100, nullable=true)
*/
private $firstName;
/**
* @ORM\Column(type="string", length=100, nullable=true)
*/
private $lastName;
/**
* @ORM\Column(type="string", length=100)
*/
private $username = "";
/**
* @ORM\Column(type="string", length=100, unique=true)
*/
private $email;
/**
* @ORM\Column(type="string", length=100)
*/
private $password;
// getters & setters
}
<head>
<script id="div-tpl" type="text/html">
<div>data</div>
</script>
</head>
<script>
не будет добавлена в DOM. Но к содержимому можно получить доступ по его id ($('#div-tpl')
).using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
using Newtonsoft.Json;
namespace WpfApplication9
{
/// <summary>
/// Interaction logic for MainWindow.xaml
/// </summary>
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
Data data = JsonConvert.DeserializeObject<Data>(json);
foreach (Item item in data.Response.Items)
{
listBox1.Items.Add(new ListBoxItem() { Content = item });
}
}
class Data
{
public Response Response;
}
class Response
{
public int Count;
public Item[] Items;
}
class Item
{
public int Id;
public int Owner_id;
public string Artist;
public string Title;
public int Duration;
public string Url;
public int Genre_id;
public override string ToString()
{
return string.Format("{0} ({1})", Title, Url);
}
}
string json = @"{
""response"":{
""count"":198,
""items"":[
{
""id"":340125039,
""owner_id"":34254853,
""artist"":""IOWA"",
""title"":""Маршрутка"",
""duration"":190,
""url"":""http:\/\/cs7-5v4.vk-cdn.net\/p12\/630de313d73392.mp3?extra=fNremCtKgl4pnCbyZ0q-LOBIfvRoUf5QGo8oWwYrOCza6AlSUOdYIImUideFd3hpPa325ckSD_c3zQ5FNluMS80lrSJiM6FC"",
""genre_id"":9
},
{
""id"":340120602,
""owner_id"":34254853,
""artist"":""Stromae"",
""title"":""Tous Les Memes"",
""duration"":168,
""url"":""http:\/\/cs7-1v4.vk-cdn.net\/p18\/600b1a66ef64d6.mp3?extra=GNP79R4nHR39dY50YJ_ddDxEuX6SQcxtG3nCgzI0LdvxoaLh5lQ2qZqqpABCqPoXOISyNzWOqMZx4_nTL3bQ31i57z-UXl4V"",
""lyrics_id"":99395752
}
]
}
}";
}
}
$dates = array();
foreach ($events as $event) {
$dateStart = \DateTime::createFromFormat('Y-m-d', $event['date_start']);
$dateEnd = \DateTime::createFromFormat('Y-m-d', $event['date_end']);
while ($dateStart <= $dateEnd) {
$date = $dateStart->format('Y-m-d');
if (!isset($dates[$date])) $dates[$date] = 0;
$dates[$date]++;
$dateStart->modify('+1 day');
}
}