Объектно-ориентированный PHP: подробнее о методах и полях класса. Каплан А


Добро пожаловать во второй урок из серии, посвященной ООП. В первой статье вы ознакомились с основами ООП в PHP, включая понятия классов, методов, полей и объектов. Также вы узнали, как создать простенький класс и реализовать его.

В данной статье вы узнаете еще больше о методах и полях класса. Это даст вам хорошую основу, для того чтобы приступить к изучению более профессиональных техник, таких как наследование.

Вот список того, о чем я расскажу вам в этой статье:

  • Конструкторы и деструкторы, которые позволяют назначить определенные действия объекту при его создании и удалении;
  • Статические поля и методы - это такие поля и методы, которые не связаны с конкретными объектами класса;
  • Константы класса, удобные для хранения фиксированных значений, относящихся к определенному классу;
  • Явное указание типа, используемое для задания ограничения типов параметров, которые можно передавать в тот или иной метод;
  • Специальные методы __get() и __set(), которые используются для задания и чтения значений полей классов;
  • Специальный метод __call(), применяемый для вызова метода класса.

Вы готовы? Тогда вперед!

Конструкторы и деструкторы

Иногда возникает необходимость выполнять какие-то действия одновременно с созданием объекта. Например, вам может понадобиться задать значения полям объекта сразу по его созданию, или же инициализировать их значениями из базы данных.

Подобно этому, вам также может понадобиться выполнять определенные действия по удалению объекта из памяти, например, удаление объектов, зависящих от удаляемого, закрытие соединения с базой данных или файлов.

На заметку: как удалить объект? PHP автоматически удаляет объект из памяти, когда не остается ни одной переменной, указывающей на него. Например, если вы создадите новый объект и сохраните его в переменной $myObject, а затем удалите ее с помощью метода unset($myObject), то сам объект также удалится. Также, если вы создали локальную переменную в какой-либо функции, она (вместе с объектом) удалится, когда функция завершит работу.

В PHP есть два специальных метода, которые можно применять для совершения определенных действий по созданию и удалению объектов:

  • Конструктор вызывается сразу после того, как вы создали объект;
  • Деструктор вызывается строго перед тем, как объект удаляется из памяти.

Работа с конструкторами

Применяйте конструкторы, чтобы задать действия, которые будут выполняться по созданию объекта класса. Эти действия могут включать инициализацию полей класса, открытие файлов, чтение данных.

Чтобы создать конструктор, добавьте в ваш класс специальный метод __construct() (перед словом construct - два символа подчеркивания). PHP автоматически вызовет этот метод при реализации вашего класса, то есть, при создании объекта этого класса.

Вот пример конструктора:

Class MyClass { public function __construct() { echo "I"ve just been created!"; } } $myObject = new MyClass(); // отобразит "I"ve just been created!"

В классе MyClass есть конструктор, который выводит на страницу строку "I"ve just been created!". Последняя строка кода создает новый объект класса MyClass. Когда это происходит, PHP автоматически вызывает конструктор, и сообщение отображается в браузере. Теперь на практике - инициализация полей класса:

Class Member { private $username; private $location; private $homepage; public function __construct($username, $location, $homepage) { $this->username = $username; $this->location = $location; $this->homepage = $homepage; } public function showProfile() { echo "

"; echo "
Username:
$this->username
"; echo "
Location:
$this->location
"; echo "
Homepage:
$this->homepage
"; echo "
"; } } $aMember = new Member("fred", "Chicago", "http://example.com/"); $aMember->showProfile();

Данный скрипт отобразит на странице следующее:

Username: fred Location: Chicago Homepage: http://example.com/

В нашем классе Member есть три поля и конструктор, который принимает в качестве параметров 3 значения - по одному для каждого поля. Конструктор назначит полям объекта значения, полученные в качестве аргументов. В классе также есть метод для отображения на странице значений полей объекта.

Затем в коде создается объект класса Member, в который мы передаем 3 значения "fred", "Chicago", и "http://example.com/", так как конструктор принимает именно 3 параметра. Конструктор записывает эти значения в поля созданного объекта. В завершение, вызывается метод showProfile() для созданного объекта, чтобы отобразить полученные значения.

Работа с деструкторами

Применяйте деструктор, когда объект удаляется из памяти. Вам может понадобиться сохранить объект в базе данных, закрыть открытые файлы, которые взаимодействовали с объектом. Чтобы создать деструктор, добавьте в класс метод __destruct(). Он вызовется как раз перед удалением объекта автоматически. Вот простой пример:

Class MyClass { public function __destruct() { echo "I"m about to disappear - bye bye!"; // (очистить память) } } $myObject = new MyClass(); unset($myObject); // отобразит "I"m about to disappear - bye bye!"

Мы создали простенький деструктор, который отображает на странице сообщение. Затем мы создали объект нашего класса и сразу же удалили его, вызвав метод unset() для переменной, которая ссылается на объект. Перед самым удалением объекта вызвался деструктор, который отобразил в браузере сообщение "I"m about to disappear - bye bye!".

На заметку: в отличие от конструкторов, в деструкторы нельзя передавать никакие параметры.

Деструктор также вызывается при выходе из скрипта, так как все объекты и переменные при выходе из метода удаляются. Так, следующий код также вызовет деструктор:

Class MyClass { public function __destruct() { echo "I"m about to disappear - bye bye!"; // (очистить память) } } $myObject = new MyClass(); exit; // отобразит "I"m about to disappear - bye bye!"

Также, если работа скрипта прекратится из-за возникшей ошибки, деструктор тоже вызовется.

На заметку: при создании объектов класса-наследника, конструкторы класса-родителя не вызываются автоматически. Вызывается только конструктор самого наследника. Тем не менее вы можете вызвать конструктор родителя из класса-наследника таким образом:

parent::__construct(). То же самое касается деструкторов. Вызвать деструктор родителя можно так: parent:__destruct(). Я расскажу вам о классах-родителях и наследниках в следующем уроке, посвященном наследованию.

Статические поля класса

Мы рассмотрели статические переменные в статье PHP Variable Scope: All You Need to Know. Как обычная локальная переменная, статическая переменная доступна только в пределах функции. Тем не менее, в отличие от обычных локальных, статические переменные сохраняют значения между вызовами функции.

Статические поля класса работают по такому же принципу. Статическое поле класса связано со своим классом, однако оно сохраняет свое значение на протяжении всей работы скрипта. Сравните это с обычными полями: они связаны с определенным объектом, и они теряются при удалении этого объекта.

Статические поля полезны в случаях, когда вам нужно хранить определенное значение, относящееся ко всему классу, а не к отдельному объекту. Они похожи на глобальные переменные класса.

Чтобы создать статическую переменную, добавьте ключевое слово static в ее задании:

Class MyClass { public static $myProperty; }

Вот пример того, как работают статические переменные:

Class Member { private $username; public static $numMembers = 0; public function __construct($username) { $this->username = $username; self::$numMembers++; } } echo Member::$numMembers . "
"; // отобразит "0" $aMember = new Member("fred"); echo Member::$numMembers . "
"; // отобразит "1" $anotherMember = new Member("mary"); echo Member::$numMembers . "
"; // отобразит "2"

Есть несколько интересных вещей, так что давайте разберем данный скрипт:

  • В классе Member два поля: частное поле $username и статическое $numMembers, которое изначально получает значение 0;
  • Конструктор получает в качестве параметра аргумент $username и устанавливает полю только что созданного объекта значение этого параметра. В то же время, он инкрементирует значение поля $numMembers, тем самым давая понять, что число объектов нашего класса увеличилось на 1.

Отметьте, что конструктор обращается к статическому полю так: self::$numMembers. Ключевое слово self похоже на $this, которое мы рассмотрели в прошлом уроке. Тогда как $this ссылается на текущий объект, self - на текущий класс. Также тогда как для получения доступа к полям и методам объекта вы используете ->, то в этом случае используйте:: для получения доступа к полям и методам класса.

  • В завершении скрипт создает несколько объектов класса Member и отображает на странице их количество, т.е. значение статической переменной $numMembers. Отметьте, что данная переменная сохраняет свое значение на протяжении всей работы скрипта, несмотря на объекты класса.

Итак, чтобы получить доступ к статическому полю класса, применяйте оператор::. Здесь мы не можем воспользоваться ключевым словом self, так как код находится за пределами класса, поэтому мы пишем имя класса, затем::, а затем имя поля (Member::$numMembers). В пределах конструктора тоже нужно использовать именно такую структуру, а не self.

На заметку: нашему скрипту ничего не стоило получить доступ к полю класса $numMembers перед тем, как создался первый объект данного класса. Нет необходимости создавать объекты класса для того, чтобы пользоваться его статическими полями.

Статические методы

Наряду со статическими полями класса, вы также можете создавать статические методы. Статические методы, так же как и поля, связаны с классом, но нет необходимости создавать объект класса, чтобы вызвать статический метод. Это делает такие методы полезными в случае, если вам нужен класс, который не оперирует реальными объектами.

Чтобы создать статический метод, нужно добавить в его объявлении ключевое слово static:

Class MyClass { public static function myMethod() { // (действия) } }

В нашем предыдущем примере, касающемся статических полей, было статическое поле $numMembers. Делать поля частными, а методы для доступа к ним - открытыми, - это хорошая практика. Давайте сделаем наше статическое поле частным и напишем статический метод public для получения значения данного поля:

Class Member { private $username; private static $numMembers = 0; public function __construct($username) { $this->username = $username; self::$numMembers++; } public static function getNumMembers() { return self::$numMembers; } } echo Member::getNumMembers() . "
"; // отобразит "0" $aMember = new Member("fred"); echo Member::getNumMembers() . "
"; // отобразит "1" $anotherMember = new Member("mary"); echo Member::getNumMembers() . "
"; // отобразит "2"

Здесь мы создали статический метод getNumMembers(), который возвращает значение статического поля $numMembers. Мы также сделали это поле частным, чтобы нельзя было получить его значение извне.

Мы также изменили код вызова, применив метод getNumMembers() для получения значения поля $numMembers. Отметьте, можно вызывать данный метод без того, чтобы создавать объект класса, потому что метод - статический.

Константы класса

Константы позволяют задать глобальное значение для всего вашего кода. Это значение фиксированное, оно не может быть изменено. Константы класса схожи с обычными константами. Основное их отличие заключается в том, что помимо того, что классовая константа глобальна, к ней можно получить доступ из класса, в котором она определена. Классовые константы полезны в случаях, когда вам нужно хранить определенные значения, которые относятся к определенному классу.

Определить классовую константу можно с помощью ключевого слова const. Например:

Class MyClass { const CONSTANT_NAME = value; }

Обратиться в последствии к классовой константе можно через имя класса и оператор::. Например, так:

MyClass::CONSTANT_NAME

На заметку: как и в случае со статическими полями и методами, вы можете обратиться к константе через ключевое слово self.

Давайте рассмотрим классовые константы на примере. Добавим в класс Member константы, в которых будут храниться значения их роли (участник, модератор или администратор). Применив константы вместо обычных численных значений, мы сделали код более читабельным. Вот скрипт:

Class Member { const MEMBER = 1; const MODERATOR = 2; const ADMINISTRATOR = 3; private $username; private $level; public function __construct($username, $level) { $this->username = $username; $this->level = $level; } public function getUsername() { return $this->username; } public function getLevel() { if ($this->level == self::MEMBER) return "a member"; if ($this->level == self::MODERATOR) return "a moderator"; if ($this->level == self::ADMINISTRATOR) return "an administrator"; return "unknown"; } } $aMember = new Member("fred", Member::MEMBER); $anotherMember = new Member("mary", Member::ADMINISTRATOR); echo $aMember->getUsername() . " is " . $aMember->getLevel() . "
"; // отобразит "fred is a member" echo $anotherMember->getUsername() . " is " . $anotherMember->getLevel() . "
"; // отобразит "mary is an administrator"

Мы создали три классовые константы: MEMBER, MODERATOR и ADMINISTRATOR, и задали им значения 1, 2 и 3 соответственно. Затем мы добавляем поле $level для хранения ролей и немного изменяем конструктор так, чтобы инициализировать еще и это поле. В классе также появился еще один метод - getLevel(), который возвращает определенное сообщение в зависимости от значения поля $level. Он сравнивает это значение с каждой из классовых констант и возвращает нужную строку.

Скрипт создает несколько объектов с разными ролями. Для задания объектам ролей используются именно классовые константы, а не простые численные значения. Затем идут вызовы методов getUsername() и getLevel() для каждого объекта, и результаты отображаются на странице.

Явное указание типов аргументов функций

В PHP можно не задавать типы данных, так что можно не переживать о том, какие аргументы вы передаете в методы. Например, вы можете спокойно передать в функцию strlen(), считающую длину строки, численное значение. PHP сперва переведет число в строку, а затем вернет ее длину:

Echo strlen(123); // отобразит"3"

Иногда явное указание типа полезно, но оно может привести к багам, с которыми трудно будет справиться, особенно в случае, если вы работаете с такими сложными типами данных, как объекты.

Например

Посмотрите на этот код:

Class Member { private $username; public function __construct($username) { $this->username = $username; } public function getUsername() { return $this->username; } } class Topic { private $member; private $subject; public function __construct($member, $subject) { $this->member = $member; $this->subject = $subject; } public function getUsername() { return $this->member->getUsername(); } } $aMember = new Member("fred"); $aTopic = new Topic($aMember, "Hello everybody!"); echo $aTopic->getUsername(); // отобразит "fred"

Данный скрипт работает так:

  • Мы создаем наш класс Member с полем $username, конструктором и методом getUsername();
  • Также создаем класс Topic для управления статьями форума. У него два поля: $member и $subject. $member - это объект класса Member, это будет автор статьи. Поле $subject - это тема статьи.
  • В классе Topic также содержится конструктор, который принимает объект класса Member и строку - тему статьи. Этими значениями он инициализирует поля класса. У него еще есть метод getUsername(), который возвращает имя участника форума. Это достигается через вызов метода getUsername() объекта Member.
  • В завершении создаем объект класса Member со значением поля username “fred”. Затем создаем объект класса Topic, передав ему Фреда и тему статьи “Hello everybody!”. В конце вызываем метод getUsername() класса Topic и отображаем на странице имя пользователя (“fred”).

Это все очень хорошо, но...

Давайте сделаем лучше!

Добавим этот фрагмент кода в конце:

Class Widget { private $colour; public function __construct($colour) { $this->colour = $colour; } public function getColour() { return $this->colour; } } $aWidget = new Widget("blue"); $anotherTopic = new Topic($aWidget, "Oops!"); // отобразит "Fatal error: Call to undefined method Widget::getUsername()" echo $anotherTopic->getUsername();

Здесь мы создаем класс Widget с полем $colour, конструктором и методом getColour(), который возвращает цвет виджета.

Затем мы создадим объект данного класса, а за ним объект Topic с аргументом $aWidget, когда на самом деле нужно передавать автора статьи, т.е. объект класса Member.

Теперь попытаемся вызвать метод getUsername() класса Topic. Этот метод обращается к методу getUsername() класса Widget. И так как в этом классе нет такого метода, мы получаем ошибку:

Fatal error: Call to undefined method Widget::getUsername()

Проблема в том, что причина ошибки не так легко уяснима. Почему объект Topic ищет метод в классе Widget, а не Member? В сложной иерархии классов будет очень сложно найти выход из такого рода ситуации.

Даем подсказку

Было бы лучше ограничить конструктор класса Topic на прием аргументов так, чтобы он мог принимать в качестве первого параметра объекты только класса Member, тем самым предостеречься от фатальных ошибок.

Это как раз то, чем занимается явное указание типов. Чтобы явно указать тип параметра, вставьте имя класса перед названием аргумента в объявлении метода:

Function myMethod(ClassName $object) { // (действия) }

Давайте подкорректируем конструктор класса Topic так, чтобы он принимал только Member:

Class Topic { private $member; private $subject; public function __construct(Member $member, $subject) { $this->member = $member; $this->subject = $subject; } public function getUsername() { return $this->member->getUsername(); } }

Теперь снова попытаемся создать объект Topic, передав ему Widget:

$aWidget = new Widget("blue"); $anotherTopic = new Topic($aWidget, "Oops!");

На этот раз PHP отобразит конкретную ошибку:

Catchable fatal error: Argument 1 passed to Topic::__construct() must be an instance of Member, instance of Widget given, called in script.php on line 55 and defined in script.php on line 24

С этой проблемой будет намного легче справиться, так как мы точно знаем, в чем именно заключается причина ошибки - мы попытались передать в конструктор параметр не того типа, который нужен. В сообщении об ошибке даже точно указаны строчки кода, где был вызван метод, ставший ее причиной.

Инициализация и чтение значений полей класса при помощи __get() и __set()

Как вы уже знаете, классы обычно содержат поля:

Class MyClass { public $aProperty; public $anotherProperty; }

Если поля класса - public, вы можете получить к ним доступ с помощью оператора ->:

$myObject = new MyClass; $myObject->aProperty = "hello";

Тем не менее, PHP позволяет создавать “виртуальные” поля, которых на самом деле нет в классе, но к которым можно получить доступ через оператор ->. Они могут быть полезны в таких случаях:

  • Когда у вас очень много полей, и вы хотите создать для них массив, чтобы не объявлять каждое поле отдельно;
  • Когда вам нужно хранить поле за пределами объекта, например, в другом объекте, или даже в файле или базе данных;
  • Когда вам нужно вычислять значения полей “на лету”, а не хранить их значения где-либо.

Чтобы создать такие “виртуальные” поля, нужно добавить в класс парочку волшебных методов:

  • __get($propName) вызывается автоматически при попытке прочитать значение “невидимого” поля $propName;
  • __set($propName,$propValue) вызывается автоматически при попытке задать “невидимому” полю $propName значение $propValue.

“Невидимый” в данном контексте значит, что на данном участке кода нельзя прямо получить доступ к данным полям. Например, если такого поля вообще нет в классе, или если оно существует, но оно частное, и за пределами класса нет доступа к такому полю.

Перейдем к практике. Изменим наш класс Member так, чтобы в дополнение полю $username были еще и другие случайные поля, которые будут храниться в массиве $data:

Class Member { private $username; private $data = array(); public function __get($property) { if ($property == "username") { return $this->username; } else { if (array_key_exists($property, $this->data)) { return $this->data[$property]; } else { return null; } } } public function __set($property, $value) { if ($property == "username") { $this->username = $value; } else { $this->data[$property] = $value; } } } $aMember = new Member(); $aMember->username = "fred"; $aMember->location = "San Francisco"; echo $aMember->username . "
"; // отобразит "fred" echo $aMember->location . "
"; // отобразит "San Francisco"

Вот, как это работает:

  • В классе Member есть постоянное поле private $username и private массив $data для хранения случайных “виртуальных” полей;
  • Метод __get() принимает единственный параметр $property - имя поля, значение которого нужно вернуть. Если $property = “username”, то метод вернет значение поля $username. В другом случае, метод проверит, встречается ли такой $property в ключах массива $data. Если найдется такой ключ, он вернет значение данного поля, в противном случае - null.
  • Метод __set() принимает 2 параметра: $property - имя поля, которое нужно инициализировать, и $value - значение, которое нужно задать данному полю. Если $property = “username”, метод инициализирует поле $username значением из параметра $value. В противном случае, добавляет в массив $data ключ $property со значением $value.
  • После создания класса Member, создаем объект этого класса и инициализируем его поле $username значением “fred”. Это вызывает метод __set(), который задаст значение $username объекту. Затем устанавливаем значение поля $location в “San Francisco”. Так как такого поля не существует в объекте, метод записывает его в массив $data.
  • В конце, достаем значения $username и $location и выводим их на страницу. Метод __get() достает действительное значение $username из существующего поля $username, а значение $location - из массива $data.

Как видите, с помощью методов __get() и __set() мы создали класс, в котором могут быть как настоящие поля, так и любые “виртуальные”. Из фрагмента кода, где задается значение тому или иному полю, не обязательно знать, существует ли такое поле или нет в объекте. Через обычный оператор -> можно задать полю значение или прочитать его.

В примере также показано, как можно легко создать методы, называемые “геттерами” и “сеттерами”, для доступа к частным полям. Нам не нужно создавать отдельные методы getUsername() и setUsername() для получения доступа к частному полю $username. Вместо этого мы создали методы __get() и __set() для манипулирования данным полем. Это значит, что нам нужно всего 2 метода в общем, а не по 2 метода для каждого частного поля.

На заметку: Слово о инкапсуляции. Использование частных полей класса в комбинации с геттерами и сеттерами - это лучше, чем использование переменных public. Геттеры и сеттеры дополнительно могут обрабатывать данные, задаваемые полям объекта и получаемые из них, например, проверять, в правильном ли формате находится значение, или конвертировать его в нужный формат. Геттеры и сеттеры также скрывают детали того, как имплементируются поля класса, что упрощает процесс модификации внутренней части класса, так как не нужно переписывать код, который оперирует объектами данного класса. Например, вы вдруг захотели хранить значение поля в базе данных. Если у вас уже были геттеры и сеттеры, все, что вам нужно, - это переписать их. А вызывающий код останется таким же. Эта техника называется инкапсуляцией, и это одно из главных преимуществ ООП.

Перегрузка методов с помощью __call()

Геттеры и сеттеры используются для запрета на доступ к частным переменным. В этом же направлении используется метод __call() для запрета доступа к частным методам. Как только из кода вызывается метод класса, который либо не существует, либо он недоступен, автоматически вызывается метод __call(). Вот общий синтаксис метода:

Public function __call($methodName, $arguments) { // (действия) }

Когда производится попытка вызвать недоступный метод класса, PHP автоматически вызывает метод __call(), в который передает строку - имя вызываемого метода и список передаваемых параметров в массиве. Затем ваш метод __call() должен будет определенным способом обработать вызов и, в случае необходимости, вернуть значения.

Метод __call() полезен в ситуациях, когда вам нужно передать некую функциональность класса другому классу. Вот простой пример:

Class Member { private $username; public function __construct($username) { $this->username = $username; } public function getUsername() { return $this->username; } } class Topic { private $member; private $subject; public function __construct($member, $subject) { $this->member = $member; $this->subject = $subject; } public function getSubject() { return $this->subject; } public function __call($method, $arguments) { return $this->member->$method($arguments); } } $aMember = new Member("fred"); $aTopic = new Topic($aMember, "Hello everybody!"); echo $aTopic->getSubject() . "
"; // отобразит "Hello everybody!" echo $aTopic->getUsername() . "
"; // отобразит "fred"

Данный пример похож на тот, что приводился в разделе о явном указании типов. У нас есть класс Member с полем $username и класс Topic с полем - объектом класса Member (автор статьи) и полем $subject - темой статьи. Класс Topic содержит метод getSubject() для получения темы статьи, но в нем нет метода, который возвращал бы имя автора статьи. Вместо него в нем есть метод __call(), который вызывает несуществующий метод и передает аргументы методу класса Member.

Когда в коде вызывается метод $aTopic->getUsername(), PHP понимает, что такого метода в классе Topic не существует. Поэтому вызывается метод __call(), который в свою очередь, вызывает метод getUsername() класса Member. Этот метод возвращает имя автора методу __call(), а тот отправляет полученное значение вызывающему коду.

На заметку: в PHP есть и другие методы, касающиеся перегрузки, например, __isset(), __unset(), и __callStatic().

Заключение

В этом уроке вы углубили свои знания по ООП в PHP, рассмотрев более детально поля и методы. Вы изучили:

  • Конструкторы и деструкторы, полезные для инициализации полей и очистки памяти после удаления объектов;
  • Статические поля и методы, которые работают на уровне класса, а не на уровне объекта;
  • Классовые константы, полезные для хранения фиксированных значений, необходимых на уровне класса;
  • Явное указание типов, с помощью которого можно лимитировать типы аргументов, передаваемых в метод;
  • Волшебные методы __get(), __set() и __call(), которые служат для получения доступа к частным полям и методам класса. Реализация этих методов позволяет вам создавать “виртуальные” поля и методы, которые не существуют в классе, но в то же время, могут быть вызваны.

Со знаниями, полученными в этом и предыдущем уроках, вы можете начать писать на ООП. Но на этом все только начинается! В следующем уроке мы поговорим о силе ООП - способности классов наследовать функциональность от других классов.

Удачного программирования!

Почти детективный сюжет

"Это... вместе с приложенными к нему многочисленными описаниями проведенных опытов и пояснительных чертежей было отослано... с гонцом, который перевалил через горный хребет, плутал по непроходимым болотам, плыл по бурным рекам, подвергался опасности быть растерзанным дикими зверями, умереть от тоски, погибнуть от чумы, пока наконец не вышел к почтовому тракту."

"Сто лет одиночества"Г.Г.Маркес

В наше время все гораздо проще. Однажды за полночь я включил компьютер и вышел в Интернет, чтобы проверить почту...

"Здравствуй, ВААЛ!

Высылаем интересный материал. Это интервью и статьи одного товарища. Было бы неплохо дать их подробный анализ. см. аттач"

А в аттаче архив на 500 kb текста.

Жму кнопку Reply и пишу:

"Здравствуйте.

С интересом прочитал Ваше письмо. Анализ возможен, но для этого необходимо обговорить условия."

Отсылаю.
Письмо возвращается. Не указан адрес!

Совсем не обратил внимания на то, что исходное письмо не содержало обратного адреса. Значит, его пропустили через анонимайзер. Знакомые штучки-дрючки.
Решил более внимательно посмотреть, что же мне прислали в аттаче.

Семнадцать файлов с именами: 9912, 0001, 0003, 0006, 0007, 0008, 0009, 0010, 0011, 0012, 0101, 0102, 0103, 0104, 0105, 0107, 0109. Можно предположить, что первые две цифры - это год, а две последние - месяц.

Первая фраза файла 9912 - "Этот сайт появился в силу ошибки, совершенной на днях Ю.М.Лужковым, Е.М.Примаковым либо кем-то из их ответственных холуев." Что-то знакомое. Опять лезу в Интернет в Yandex , ввожу всю фразу целиком и жму Найти . Опаньки! Первая же найденная ссылка все расставляет на свои места:

Заявления и интервью руководства ФЭП Показать найденные слова
Заявления и интервью руководства ФЭП ПУБЛИКАЦИИ ЗАЯВЛЕНИЯ И ИНТЕРВЬЮ РУКОВОДСТВА ФЭП
Этот сайт появился в силу ошибки, совершенной на днях Ю.М.Лужковым, Е.М.Примаковым либо кем-то из их ответственных холуев. Впрочем, эта ошибка - следствие более крупной ошибки, сделанной раньше.
http://www.fep.ru/publications/management/ovg31299i.html - 10К - строгое соответствие
Переход в категорию Внутренняя политика / Похожие документы / Еще с сервера не менее 1 док.

Опускаю детали умозаключений и перехожу к резюме.

Мне прислали семнадцать файлов интервью и статей Глеба Павловского, размещенных на сайте его ФЭП а http:/www.fep.ru . Несомненно, приславший письмо является искренним доброжелателем Павловского, так как предусмотрительно воспользовался анонимайзером. Он очень заинтересован в анализе, так как предварительно удалил из текстов интервью все не являющееся словами Павловского. Для этого нужно было 500 kb текста вручную перелопатить. Работа немалая и нудная! Все сделал, чтобы облегчить мне задачу, искуситель чертов.

Первоначальное желание отправить все в корзину отступило, и я решил все-таки проанализировать присланный материал. Но чтобы в свою очередь не искушать Доброжелателя , я почти ничего о самом Павловском не скажу. Не стану огорчать его описанием обнаруженных пороков Глеба Ольговича. Поступлю иначе.

Так как результаты будут в конечном итоге размещены на сайте (не пропадать же им даром!), то попробую на данном материале решить задачу определения того, как относится автор текста к различным упоминаемым им персонам (в том числе и к самому себе:-))). Это интересно потому, что позволяет на живом примере продемонстрировать еще один из методов ВААЛ-анализа.

Жизнь удалась!

Но все-таки без нескольких слов о самом Павловском не обойтись.

Напомню, что такое Валентность . Любая наша деятельность протекает в определенных условиях. На ее успешность влияют различные предметы, явления, другие люди, вступающие в конкуренцию или наоборот способствующие достижению поставленных нами целей. В зависимости от характера такого влияния их можно отнести к имеющим либо положительную , либо отрицательную валентность. Валентность не является свойством самих объектов, а лишь проявляется в рамках некоторой структуры отношений.

Красная кривая линия показывает степень выраженности положительной валентности в анализируемых статьях и интервью. Синяя кривая - степень выраженности отрицательной валентности. Зеленая кривая - это разница между значениями положительной и отрицательной валентности. Зеленая прямая линия - это линейный тренд разницы между значениями положительной и отрицательной валентности. Сильно закручено, но все делалось именно ради этой зеленой прямой .

Что же мы видим на диаграмме? А видим мы то, что за два прошедших года зеленая прямая выросла от -3 до почти +3 . Очень сильный рост! Это означает, что с течением времени все больше и больше предметов, явлений, других людей способствуют достижению поставленных Павловским целей.

Если в двух словах, то
Жизнь удалась!

О других и о себе

Как я уже писал выше, нашей целью будет выявление отношения Глеба Павловского к различным людям, которых он упоминал в своих статьях и многочисленных интервью. В качестве объектов исследования мы выбрали: Березовского, Гусинского, Ельцина, Лужкова, Примакова, Путина и самого Павловского (под псевдонимом Я ).

Решить эту задачу с помощью системы ВААЛ-2000 можно двумя способами. При любом из них предварительно требуется создать семь категорий упоминаемых персонажей. Т.е. на основании всего текста создаем словарь, а уже с его помощью формируем категории БЕРЕЗОВСКИЙ, ГУСИНСКИЙ и т.д.

Первый способ. Запустив контент-анализ, смотрим, как новые категории связаны (коррелируют) со встроенными категориями. На основе значимых связей делаем глубокомысленные выводы.

Второй способ(использованный нами) - контекстный анализ. Для знакомых с современным состоянием контент-анализа скажу, что это просто контент-анализ collocations упоминаемых персон. Для тех, кто не знает, что такое collocation , поясню.

Для каждого упомнания в тексте Лужкова мы можем взять слова, находящиеся от него в некоторой окрестности. Объединив такие окрестности для всех упоминаний Лужкова вместе, мы и получим для него collocation . Что взять в качестве окрестности, зависит от целей исследования. В нашем случае мы брали слова, просто находящиеся в одном предложении.

В предложении "Этот сайт появился в силу ошибки, совершенной на днях Ю.М.Лужковым,Е.М.Примаковым либо кем-тоиз их ответственных холуев." в окрестность Ю.М.Лужковым вошли слова: этот, сайт, появился, в, силу, ошибки, совершенной, на, днях, Е.М.Примаковым, либо, кем-то, из, их, ответственных, холуев .

Дальнейшие наши действия таковы. Для каждой из оценочных шкал (категорий) мы вычисляем ее среднее значение по всему массиву текста. Затем вычисляем оценки этих же шкал для полученных collocations и сравниваем их с общим средним значением. В случае эмоционально-лексических шкал операция сравнения - это просто взятие разницы двух величин, а в случае категорий - разница средних, нормированная по стандартному отклонению. Как видим, все очень естественно и просто. Поэтому я больше не буду никому морочить голову, а перейду непосредственно к результатам.

Результаты


По эмоционально-лексическим оценкам получили следующие результаты:
Персона Резюме
Березовский Темпераментный, умный, деловой, практичный, пунктуальный, аккуратный, волевой, раскрепощенный
Гусинский Активный, деловой, раскованный, невыдержанный, раздражительный, лицеменрный, лживый, лукавый, угодливый, непоследовательный
Ельцин Энергичный, кололритный, волевой, вспыльчивый, капризный, лицемерный, жестокий
Лужков Думающий, умный, непокорный, сильный, собранный, опытный, упрямый, деловой, яркий, но в то же время зловредный и вероломный
Примаков Умный, образованный, яркий, самобытный, элегантный, замкнутый, недобросовестный, лицемерный и лукавый
Путин Обязательный, добросовестный, честный, справедливый, дельный, взыскательный, волевой
сам Павловский Добрый и сердечный

Показателем того, насколько эмоционально неравнодушен Павловскому тот или иной человек, может служить сумма абсолютных величин оценок по всем шкалам. При этом мы исходим из предположения, что чем более неравнодушны мы к человеку, тем более эмоционально нагруженные слова в отношении него употребляем. Результат на следующей диаграмме:



Получаем, что наиболее неравнодушен Павловский к Гусинскому и Лужкову Березовский, Примаков, Ельцин, Путин и сам Глеб Олегович . Наиболее терпимо он относится лишь к самому себе. Если вспомнить события последних лет, то результаты похожи на правду.


Сумму положительных категорных оценок можно интерпретировать как психологическую яркость личности в представлении Павловского.



На первом месте Лужков . Затем в порядке убывания идут Ельцин, Примаков, Путин, Гусинский , сам Павловский и в конце Березовский . Как видим, Лужков занимает устойчивое первое место в душе Павловского.

Маленькое расследование завершено. Теперь можно со спокойной совестью отправить присланные материалы в мусорную корзину и заняться более серьезными делами.

Хочу рассмотреть принцип документирования программного PHP кода, основанный на DocBlock (DocBlock comments). Многие называют его стандартом, хотя каких-то авторитетных источников, подтверждающих это, я не нашел. Тем не менее, данный формат комментариев распространен во многих языка. Насколько я понимаю, пришел он из Java и по своему принципу наследует Javadoc. Он прекрасно поддерживается и интерпретируется средами разработки. Также существует немало решений, позволяющих автоматически генерировать документацию на основе таких комментариев.

DocBlock – это многострочный комментарий, требующий соблюдения определенного синтаксиса. В PHP данный способ более известен под другим именем – phpDoc. Оно происходит от названия утилиты phpDocumentor, предоставляющей возможность создавать страницы документации автоматически. Результат ее работы очень похож на официальную документацию PHP.

О пользе написания комментариев написано немало. Обычно призывы основаны на необходимости заботиться о тех, кому придется работать с вашим кодом в дальнейшем. Безусловно, я с этим согласен, но считаю это очень плохой мотивацией. Люди эгоистичны и зачастую действуют только в своих собственных интересах, что совершенно нормально.

Я хочу привести ряд аргументов, которые, возможно, смогут убедить в том, что хороший комментарий несет пользу прежде всего нам самим. phpDoc блоки позволяют увеличить не только читаемость существующего кода, но и ускорят написание нового за счет использования возможностей IDE.

Синтаксис phpDoc

Весь синтаксис строится на использовании дескрипторов и их значений, обернутых в Си подобный многострочный комментарий.

/** * @имя_дескриптора значение_директивы * @еще_дескриптор * */

Наверное, стоит заметить, что каждая строка внутри блока должна начинаться с символа *. Именам дескрипторов предшествует знак @.

phpDoc может описывать не только отдельные участки кода, но и весь файл скрипта, располагаясь в самом начале файла. Такой блок называется заголовочным.

Ниже предлагаю список дескрипторов phpDoc и мои комментарий к ним.

Дескриптор Значения/Пример Описание
@abstract none Описывает абстрактные классы, методы или свойства
@access private/protected/public Указывает на модификатор доступа свойства или метода класса.
@author @author Oleg Murashov Имя автора кода. phpDocumentor будет искать текст между угловыми скобками (). Если такая конструкция будет найдена и ее формат будет соответствовать e-mail адресу, то она будет преобразована в соответствующую ссылку.
@category @category Zend Имя категории, в которую объединены несколько пакетов.
@copyright Copyright (c) 2005-2011 Company Информация, указывающая на правообладателя кода.
@deprecated @deprecated 1.7 Дескриптор указывает на то, что код устарел. В качестве значения дескриптора указывается версия, начиная с которой код считается устаревшим.
@example @example /path/example.php описание Указывает путь к файлу, содержащему пример использования кода. phpDocumentor опубликует пример, подсветив синтаксис и пронумеровав строки.
@final none Дескриптор отмечает методы или свойства, которые не могут быть перегружены в дочерних классах. Также может быть отмечен класс, который не должен быть наследован.
@filesource none Дескриптор может быть использован только в заголовочном комментарии. В других местах она игнорируется. Указывает phpDocumentor’у на необходимость вывести исходный код текущего файла, подсветить синтаксис и пронумеровать строки.
@global @global datatype описание Дескриптор для декларации глобальных переменных. Для понимания того, как верно использовать данную директиву, лучше всего обратиться к соответствующей документации .
@ignore none Сообщает phpDocumentor’у, что данный код не следует включать в лист документации
@internal @internal комментарий Значение дискриптора не будет добавлено в файлы документации. Удобно, если нужно оставить комментарий только для тех, кто работает с кодом
@license @link http://www.example.com/License.txt GPL License Добавляет ссылку на лицензию, под которой распространяется код
@link @link http://www.example.com Текст ссылки Дает возможность добавить ссылку в к любому документируемому коду.
@method @method returntype описание Используется для описания магического метода __call().
@name @name $globalvariablename Дает возможность сослаться на краткое имя глобальной переменной, объявленной с помощью @global
@package @package Zend_Pdf Указание имени пакета, в который входит данный программный код (файл). Используется в заголовочном блоке файла или в блоке комментариев класса.
@param @param datatype1|datatype2 $paramname описание Дескриптор описывает входные параметры для функций и методов классов. Содержит информацию и типе данных параметра и его описание.
@property
@property-read
@property-write
Дескрипторы описывают свойства класса, которые могут быть записаны или прочитаны с помощью магических методов __set() и __get(). Если свойство доступно для чтения и записи, необходимо использовать директиву @property. Если только для чтения или только для записи, то @property-read или @property-write соответственно. Используются только в блоке описания класса.
@return @return datatype1|datatype2 описание Используется для описания данных, возвращаемых функцией или методом класса. Синаксис схож с дискриптором @param. Если в качестве типа будет указано имя класса, phpDocumentor автоматически создаст ссылку на данный класс.
@see @see … Дескриптор предлагает обратиться к другому, уже существующему докблоку. Например, может быть использован при документировании метода, класс которого имплементирует интерфейс, где уже существует полноценный докблок. Позволяет избежать дублирования комментариев.
@since @since v 0.7 Указывает на версию пакета/класса, с которой комментируемый элемент стал доступен. Например, при описаниии метода, который появился только в какой-то версии класса, можно указать эту версию.
@static none Маркирует статические методы или свойства класса
@subpackage @subpackage Name Используется для объединения нескольких пакетов в один раздел документации. Игнорируется, если нет дескриптора @package. Как и @package, помещается в заголовочном блоке комментариев.
@todo @todo Something Можно описать будущие возможные изменения кода
@throws @throws MyException Указывает тип исключения, который может быть возвращен участком кода
@var @var string Указывает тип свойства класса
@version @version Version 1.1 Текущая версия реализации документируемого кода.

Дескрипторы @access , @final и @abstract были актуальны в PHP 4, но сейчас их можно не использовать, так как они потеряли актуальность с появлением модификаторов доступа и ключевых слов final и abstract .

Каждый docBLock делится на несколько секций:

  • заголовок;
  • описание;
  • список дескрипторов.

Разделителем для секций служит пустая строка.

Примеры использования phpDoc комментариев

Я не хочу приводить синтетические примеры, поэтому заимствую код из популярного фреймворка Zend Framework, который, как мне кажется, имеет самые толковые и подробные блоки комментариев.

Я значительно укоротил многословные описания методов и классов, избегая избыточности в рамках примера. Обратите внимание на общий принцип документирования и на синтаксис дескрипторов.

Использование дескриптора @see

/** * @see Zend_Acl_Resource_Interface */ require_once "Zend/Acl/Resource/Interface.php";

Пример блока комментариев для метода класса

/** * Removes "deny" restrictions from the ACL * * @param Zend_Acl_Role_Interface|string|array $roles * @param Zend_Acl_Resource_Interface|string|array $resources * @param string|array $privileges * @uses Zend_Acl::setRule() * @return Zend_Acl Provides a fluent interface */ public function removeDeny($roles = null, $resources = null, $privileges = null) { return $this->setRule(self::OP_REMOVE, self::TYPE_DENY, $roles, $resources, $privileges); }

Свойство класса

/** * Role registry * * @var Zend_Acl_Role_Registry */ protected $_roleRegistry = null;

А вот один из примеров подсказок (), которые может предлагать среда разработки, в данном случае Eclipse.

Также среда разработки может выводить подсказки, основанные на docBlock. Например, подсказка, появляющаяся при наведении на имя метода Zend_Acl_Role_Registry::add() .

Каплан А. Б.

Французская школа «Анналов» об истории культуры

Сборник работ по различным отраслям гуманитарного знания Manefon

http://www.manefon.org/show.php?t=0&txt=2

На протяжении XX в. интерес к изучению истории культуры постепенно возрастал. В начале и в первой половине века историко-культурные исследования имели в основном локальный характер, ограничивались частными проблемами. Когда в 1919 г. вышла в свет книга голландского историка и философа Й. Хейзинги «Осень средневековья» (7), современники полностью не смогли оценить ее значения для развития общественных наук. Проходили десятилетия, а книга Хейзинги не старела, она становилась все более и более современной. В послесловии к ее русскому изданию A. B. Михайлов пишет, что уникальное качество этой книги состоит в способности погружать читателя в чтение якобы увлекательного романа и в то же время заставить его постоянно осознавать, что он изучает труд кропотливейшего исследователя (7, с. 413). А. В. Михайлов показывает, что Й. Хейзинга идет по пути рассказа, а не по пути навязчивого толкования фактов. Й. Хейзинга открыл окно в XV в. Европы, в век жестокий и кровавый, он стремился обрисовать истинное отношение людей позднего средневековья к искусству. Стоит отметить, что Й. Хейзинга не ставил своей целью всестороннее изучение народного менталитета, хотя в его книге и содержатся ценные наблюдения по истории народной культуры. Преимущественно ее содержание посвящено менталитету высших слоев общества и интеллигенции XV в. Безусловно, читателю конца XX в., знакомому с последними достижениями исторической психологии, многое покажется несколько наивным в книге Й. Хейзинги. Однако, следует помнить, что именно блестящая попытка голландского ученого описать специфические черты мышления людей средневековья подвигла последующие поколения историков на решение узловых задач исторической психологии.

Термин «историческая психология» появился в 30-е годы XX в. и связан главным образом с деятельностью ученых, сгруппировавшихся вокруг парижского журнала «Анналы», который начал выходить в 1929 г. Основателями журнала стали великие французские историки Марк Блок и Люсьен Февр, которые ввели в лексикон историка понятие «менталитет». В сфере внимания М. Блока прежде всего находились общественные связи, социальные структуры. С его точки зрения, «средневековое общество есть некое единство всех аспектов: производства, отношения господства и зависимости, политической власти, мировосприятия, причем социальный строй и аграрная структура стоят у М. Блока на первом месте» (2, с. 512). Впрочем, это не означает, что вопросы психологии и культуры М. Блока не интересовали. Даже в специальных трудах, посвященных истории сельского хозяйства, он уделяет достаточно много места психологии крестьянина, а в своих капитальных работах М. Блок достиг больших успехов в области разработки истории менталитета. Несомненно, что великий мастер оставил бы еще большее наследство, если бы не был убит во время войны нацистскими палачами.

Л. Февр, как отмечает А. Я. Гуревич, предпочитал понятию «структура» более расплывчатые термины: «ритмы, пульсации, течения и контртечения» (2, с. 512). Эти понятия были более близки Л. Февру как историку идей, ибо он стремился к продуманному синтезу исторических и психологических наук. В работах Л. Февра прослеживается методика психологического подхода к истории. Л. Февр считался уникальным знатоком XVI в., но его книги о Лютере и о Рабле и статьи «Капитализм и реформация» (6, с. 203-216), «Торговец XVI века» (6, с. 217-236), «Главные аспекты одной цивилизации» (6, с. 282-246) позволяли другим специалистам, разрабатывавшим проблемы исторической психологии, использовать уникальный методический материал. Л. Февр окончательно разрушил традиционные представления в исторической науке относительно двух типов сознания - средневекового и ренессансного - как о неких четко очерченных структурах; он стремился показать неповторимость и уникальность менталитета каждого исторического периода. Показ своеобразия мышления европейского купца XVI в., умение красочно изобразить эту неповторимость — одна из существенных черт творчества историка и писателя Л. Февра. Кратко и образно он описывает, например, великий переворот в сознании художника в начале XVI в.: «... этот работник ручного труда, этот «механизм» - на самом деле он нечто совсем иное, чем невежественный и приносящий пользу ремесленник. Ибо, если он талантлив, если он может своей кистью воспроизводить жизнь, воскрешать прошлое, облекая его в живые краски настоящего, то он - один из великих мира сего, сравнявшийся знатностью и благородством в глазах образованных людей и творцов с принцами и королями. Разве Тициан не достоин того, чтобы Карл V поднял с пола уроненную им кисть? Немного раньше, когда Альбрехт Дюрер покидал блистательную Венецию, чтобы вернуться в свою буржуазную Германию, - разве не сказал он в сокрушении сердечном слова, исполненные значения: «В Венеции я дворянин. В Нюренберге я жалкий бедняк» (6, с. 328).

Впрочем, в то же время Л. Февр утверждает, что художник начала XVI в. не был человеком Нового времени. В его сознании и в его образе жизни причудливо сплелись черты средневековья и Нового времени. Но человек конца XVI в. обладал особым менталитетом. Менталитет «переходного периода» — чрезвычайно сложное явление, в XX в. ученые в разных странах начали серьезно его изучать. Большой вклад в исследование общественного сознания внес великий русский культуролог М. М. Бахтин. А. Я. Гуревич полагает, что Л. Февр и М. М. Бахтин открыли две уникальные черты общественного сознания XVI в.: Февр раскрыл своеобразие религиозной культуры раблезианской эпохи, Бахтин исследовал и описал огромный мир смеховой карнавальной культуры позднего средневековья.

Заслуга Л. Февра и М. Блока заключалась также в том, что они заложили основы теории ментальности. Работы этих историков позволили осознать, что оценка поступков исторических персонажей с точки зрения современных стереотипов есть искажение истории. Люди прошлых веков отличались от нас, прежде всего, своим менталитетом, т. е. образом мышления, поведения, реакцией на окружающую среду. Как ни развита была индивидуальность у отдельного человека, «психологическая матрица» его века накладывала на его сознание особый отпечаток. Найти зыбкую границу между индивидуальностью и ментальностью - трудная, но увлекательная задача для историка. Прежде всего, необходимо охарактеризовать многообразие ментальности: социальная, религиозная, культурная, национальная. Ментальность нельзя полностью приравнивать к таким явлениям, как «сознание» или «сфера бессознательного», хотя между этими тремя явлениями существует глубокая связь.

М. Блок и Л. Февр были великолепными художниками слова, они могли создавать картины прошлого подобно Хейзинге, но их исследовательский скальпель одновременно и весьма точно препарировал прошлое. Они практиковали синтез наук, прежде всего истории, психологии, социологии, культурологии и т. д. Благодаря применению синтетического метода многие традиционные исторические источники, которые уже много лет считались до конца исследованными, стали вновь «излучать информацию».

Следующее поколение историков - Жак Ле Гофф, Жорж Люби, Робер Мандру, Эммануель Леруа Ладюри - продолжало работу своих учителей. А. Я. Гуревич называет Ж. Ле Гоффа «историком ментальностей». Ж. Ле Гофф указывал на трудность изучения этого явления, поскольку оно весьма внутренне противоречиво. А. Я. Гуревич подчеркивает в послесловии к одному из трудов Ж. Ле Гоффа «... способы ориентации в социальном и природном мире представляют собой своего рода автоматизм мысли: люди пользуются ими, не вдумываясь в них и не замечая их, наподобие мольеровского господина Журдена, который говорил прозой, не догадываясь о ее существовании. Системы ценностей далеко не всегда, да и не полностью, формулируются моралистами или проповедниками - они не могут быть имплицированы в человеческом поведении, не будучи сведены в стройный продуманный кодекс» (1, с. 356).

Ж. Ле Гоффа с полным основанием можно назвать главным теоретиком проблемы менталитета. В России наиболее глубоко разрабатывает эту тему А. Я. Гуревич (1, 2). Он также является историографом Школы «Анналов». В его статьях анализируются достижения французских ученых в области разработки проблем истории Нового времени (XVI-XVIII вв.). Следует отметить, что достижения современных историков в этом плане весьма велики. Огромное количество монографий и статей просто подавляет читателя «Ежегодника французской национальной библиографии». Даже литература фондов библиотеки ИНИОН РАН по этому вопросу, настолько обширна, что один человек бессилен подвергнуть анализу все это богатство, здесь нужен труд ряда специалистов. Поэтому в нашу задачу входит обзор тех работ, которые еще недостаточно знакомы широкой аудитории.

Один из таких авторов - Робер Мандру. А. Я. Гуревич в послесловии к сборнику работ Л. Февра называет Р. Мандру продолжателем дела Школы «Анналов». Мандру не отделял историю человеческих эмоций и настроений от общей социальной истории. Эмоциональность, духовная жизнь предельно связана с социальной действительностью, считал он. Если Л. Февр изучал уникальность менталитета в определенный период, то Р. Мандру интересовала вообще динамика изменения ментальностей в связи с развитием социально-экономических структур. В частности, Р. Мандру в монографии «Магистраты и колдуны» (11) сумел блестяще проследить, как изменилась коллективная психология французского чиновничества на протяжении XVII в. по отношению к носителям «дьявольских сил» - от дикой нетерпимости и до цивилизованной толерантности. Р. Мандру также показал, насколько сложны метаморфозы ментальности: «Всякая историческая психология, любая история ментальностей есть несомненно история социальная. Но вместе с тем она представляет собой и историю культуры» (11, с. 527).

Рассматривая историю культуры во Франции, Р. Мандру отмечает, что до сих пор здесь господствует теория филиации идей, которая не учитывает такие явления, как историческая психология и менталитет. Р. Мандру настаивает на необходимости синтеза истории религии и истории культуры, изучения ряда источников, которые могли бы пролить свет на психологию авторов и их современников, дали бы возможность понять особенности творчества и восприятия идей в определенную эпоху. Много внимания Р. Мандру уделяет народной культуре. В этой области до сих пор, считает он, господствует традиционная методика фольклора: для понимания же развития народной культуры нужен синтез фольклора с исторической психологией и другими дисциплинами (10, с. 152). Р. Мандру подчеркивает, что необходимо прослеживать эволюцию культуры в деревне, в провинциальных городах и в столице. Наиболее неподвижной была деревенская культура. Р. Мандру исследовал сравнительно многочисленную «литературу книгонош», т. е. деревенских торговцев книгами (9, с. 154-157). На протяжении XVI-XVIII вв. содержание книг поистине не меняется: примитивные рассказы из священной истории, жития святых, повести о деяниях великих монархов (особенно Карла Великого), толкования снов, сказки - вот что находило спрос в деревне даже в эпоху Вольтера и Руссо.

Впрочем, говоря об относительной неподвижности деревенской культуры, Мандру отмечает, что средневековая традиция была живуча и в среде провинциального дворянства. Изучение списков названий книг из библиотек провинциальных дворян свидетельствует о господстве в этих библиотеках трудов по священной истории и рыцарских романов даже в XVIII в. (10, с. 163). Однако образ жизни провинциального дворянства на протяжении XVII-XVIII вв. изменился: большинство замков и даже укрепленных домов (мезонфор) были уничтожены по приказу Ришелье, значительная часть дворян переселилась в города, многие провинциальные дворяне значительно обеднели. Не последнюю роль в упадке провинциального дворянства сыграла ценностная установка, сводившаяся к тому, что подлинный дворянин не должен заниматься хозяйством или коммерцией, а лишь турнирами и охотой. Но мода на турниры отмерла в конце XVI в., а охота, которая сопровождалась обычно потравой полей, вызывала ненависть у крестьян. Однако чем более ухудшалось положение мелкого дворянства, тем более цепко оно держалось за сохранение своих сословных привилегий. Именно в XVIII в. приобретает популярность учение о «голубой крови» (предтеча расизма). Это учение в то время было направлено против парвеню, выскочек, т. е. титулованных карьеристов, выходцев из буржуазной среды, процветавших при дворе.

Во второй половине XVII в. изменился образ жизни столичного дворянства и его психология. Дворяне превратились из вассалов короля в придворных. Вместо старой феодальной иерархии возникла новая придворная иерархия более сложная и зависящая от воли одного человека - короля. В больших городах появлялись маленькие дворы правителей провинции по модели Версальского двора. Двор фактически лишал даже самого родовитого дворянина феодальной вольности и подчинял строгому диктату этикета. За многолетнее царствование Людовика XIV сменилось три поколения высшего и среднего дворянства, в среду которого проникали многочисленные представители чиновничества. Нельзя сказать, что аристократы не протестовали против своего униженного положения, но их протест носил своеобразный характер либертинажа - вольномыслия и скептицизма (10, с. 167). В XVIII в. аристократические круги уже не скрывали своего вольномыслия и даже атеизма.

Однако это не означает, что от либертенов кружка великого Конде, принца крови, оттесненного фаворитами Людовика XIV от кормила власти, до деятелей эпохи Просвещения идет прямая линия. Истинная история была значительно сложнее. XVII в. - это век господства католической церкви во Франции, запрещения протестантизма. Жизнь католической церкви в этой стране была внутренне противоречива. С одной стороны, церковь активно борется за свое влияние в народе: появляется немало талантливых проповедников-организаторов, различных светско-религиозных обществ, помогавших беднякам. С другой стороны, в XVII в. шла ожесточенная борьба в высших церковных кругах между иезуитами и янсенистами по вопросу о свободе воли. В этой борьбе принял участие и великий Паскаль. Иезуиты обвиняли янсенистов в кальвинистской ереси, янсенисты винили иезуитов в аморализме и лицемерии. Эта борьба осложнила положение сельских кюре, которые не знали, к какому лагерю примкнуть. К 1715 г., когда смута закончилась временной победой иезуитов, можно утверждать об упадке религиозности в среде низшего духовенства.

Аристократы-либертены оказывали определенное влияние на общество, но они не подвергались преследованиям со стороны властей, их спасали, во-первых, принадлежность к высшей знати и то, что они открыто не афишировали свои взгляды, во-вторых. Когда Мольер в пьесе «Дон Жуан» показал цинизм и двоемыслие либертенов, он подвергся травле со стороны королевского двора.

В XVII в. наблюдается подъем влияния буржуазии, прежде всего дворянства мантии, чиновников парламентов, прокуроров и интендантов, контролировавших сбор налогов в провинции. Для французского буржуа эпохи «Старого порядка» главной жизненной ценностью было не накопление денег для развития собственного дела, а возможность купить государственную должность, например должность интенданта. Продажа государственных должностей практиковалась издавна королевской властью. Чиновную буржуазию ненавидели и аристократия, и простой народ. Но для своего самоутверждения и дворянство мантии, и примыкавшая к нему крупная буржуазия объявляли себя защитниками государственных интересов. Поглощая значительную часть концентрированной государственной ренты, чиновная буржуазия, как подчеркивает Р. Мандру, тратила значительные средства на содержание деятелей культуры (10, с. 179-183). В XVIII в. создаются провинциальные академии, на деньги просвещенных богатых чиновников издаются книги философов-просветителей. Количество книг светского содержания с годами растет: с 1700 по 1750 г. вышло 13 тыс. книг, с 1750 по 1789 г. - 30 тыс. (10, с. 198). На деньги многочисленных подписчиков и на денежные взносы, в основном богатых просвещенных буржуа, Дени Дидро мог содержать более тысячи сотрудников для издания знаменитой энциклопедии (10, с. 205), Образованная часть аристократии и даже двор находились в конце XVIII в. под влиянием литературы Просвещения, не чувствуя той опасности, которую она несла «Старому порядку».

На протяжении XVII-XVIII вв. культура Франции меняла облик. В первой половине XVII в. господствовал стиль барокко, т. е. художественный стиль конца эпохи Возрождения. Этому стилю было присуще обилие декоративных деталей, стремление к многообразию в живописи и в литературе. Р. Мандру указывает, что многообразие барокко социально отвечало политическому порядку того времени, влиянию родовитого дворянства, особенно сильно проявившегося в период Фронды. В этот период артистический мир зависел в основном от воли отдельных меценатов (10, с. 229). В литературе стиль барокко отличался субъективным психологизмом, особенно в драматургии. Во Франции это проявилось в пьесах Ж. Ротру и с еще большей силой в трагедиях П. Корнеля.

Во второй половине XVII в. характер культуры Франции резко меняется. Многообразное барокко сменяется строгим классицизмом. Эта перемена явственно прослеживается в истории. Можно даже назвать дату рождения классицизма - 1660 г., т. е. начало действительного правления Людовика XIV. Отныне все культурное развитие страны оказалось под контролем короля (10, с. 232). Главным архитектурным памятником классицизма по праву считается Версаль. Причем это не только дворец, а комплекс дворцовых построек, садов и фонтанов. В его создании принимала участие плеяда архитекторов: Мансар, Ле Брен, Ле Ноэр и др., но они находились под жестким контролем короля. Для классицизма характерен синтез искусств. Синтезу архитектуры, скульптуры, художественного садоводства в ходе строительства Версаля соответствовал синтез драматургии, музыки и балета в сценическом искусстве. Строгое вкусовое единство классицизма было стимулом для создания великолепных архитектурных памятников. Эпоха Людовика XIV отмечена расцветом как живописи, так и литературы. Но в царствование великого монарха судьба великих драматургов Мольера и Расина была весьма трагична. Придворный архитектор и садовод - подобные словосочетания звучат нормально, но понятие «придворный драматург» звучит унизительно. Ни Мольер, ни Расин не были придворными, отмечает Р. Мандру. Их творчество созидателей-одиночек задыхалось в строгих рамках диктата короля. Если «Мещанин во дворянстве», «Господин Пурсиньяк» и «Жорж Данден» вызывали восторг монарха, то такие гениальные произведения как «Тартюф», «Дон Жуан» и «Мизантроп» не соответствовали политическим взглядам короля, и их судьба была печальна при жизни автора.

Второй великий создатель трагедий - Расин также пострадал от деспотизма короля. Драматургия Расина, по мнению известного французского исследователя Люсьена Гольдмана, отражала взгляды наиболее могущественного слоя буржуазии, парламентских чиновников, докторов Сорбонны, которые разделяли взгляды янсенистов - противников иезуитов, близких к королевскому двору. По мнению Мандру, социализация и политизация творчества Расина не вполне обоснована (10, с. 241). Конечно Расин, сочувствовавший янсенистам, отражал в своих пьесах трагизм тирании, но это лишь один из многих нюансов его творчества. Главное же заключалось в том, что Расин создавал свои произведения, строго придерживаясь принципов классицизма. Эта нормативная система зиждилась на методах рационалистической философии. Классицизм предписывал четкую логику развития действия, ясность мысли. Драматурги-классицисты создавали типические, строго очерченные характеры в рамках психологии того времени. Последнее не исключало стремления к более глубокому проникновению автора во внутренний мир героя.

В творчестве Расина, считал Р. Мандру, нашло выражение все то положительное, что принес искусству классицизм. Мысль Р. Мандру подтверждает следующее заключение Н. А. Жирмунской: «Язык Расина несомненно несет на себе печать условности, характерной для поэтики классицизма. Он оперирует тщательно отобранной лексикой, ограниченной преимущественно отвлеченными и общими понятиями, избегает конкретных слов и разговорных оборотов, неуместных в «высоком» жанре трагедии, но также и вычурной орнаментальности и риторических прикрас. Вместе с тем, как в вопросах композиционной структуры, так и в языке правила классической поэтики нигде у Расина не ощущаются как насилие, навязанное поэту извне, они не сковывают и не подчиняют его себе — напротив, Расин с удивительной простотой и непринужденностью подчиняет эти условности своей главной художественной задаче: углубленному психологическому анализу душевного состояния своих героев» (3, с. 406). Величавая красота языка Расина и в то же время гибкость и выразительность его речи недоступны в полной мере самому совершенному переводу. Как и всякий автор, великий драматург высказывал собственные взгляды, но строгая манера его творчества, поэтический гений и раскрытие глубинных чувств персонажей не давали его современникам видеть субъективные намеки автора. Лишь когда двор стареющего короля охватила ханжеская подозрительность, исчезли условия для плодотворного творчества Расина.

Для культуры классицизма во Франции характерны стремительное развитие и не менее быстрый упадок, хотя классические традиции продолжали существовать века. После смерти Людовика XIV в 1715 г. диктат версальского этикета значительно ослаб, в XVIII в. центром развития культуры вновь стал Париж. Р. Мандру отмечает, что приход каждого монархического властителя влиял на изменение стиля жизни (особенно высшего общества) и на характер культуры: эпоха регентства, царствование Людовика XV и Людовика XVI (10, с. 314). Но в то же время в стране шли незаметные глубинные процессы.

Изучение архивов многих учебных заведений периода «Старого порядка» позволило понять, как возник и развивался во Франции такой культурно-исторический феномен как Просвещение. После победы католиков над протестантами в конце XVI в. в стране начался религиозный подъем, католическая церковь всеми силами стремилась поднять свой престиж. Контрреформация заключалась и в стремлении повысить культуру религиозной жизни, заменить слепое поклонение религиозным реликвиям более осознанной твердой верой. Здесь главную роль играли иезуиты. Королевская власть покровительствовала их ордену, начиная с царствования бывшего вождя протестантов Генриха IV. Вскоре во многих населенных пунктах Франции открылись иезуитские коллежи и лицеи.

Иезуиты весьма серьезно относились к методике образования. Если в прежних церковных школах для простонародья господствовали зубрежка и телесные наказания, то иезуиты заботились о «воспитании души ученика». Учитель-иезуит ставил своей задачей мягко и незаметно воздействовать на сознание своего воспитанника. В иезуитских коллежах искусно создавалась обстановка относительной свободы, поощрялся интерес к определенной форме занятий, почти в каждом учебном заведении имелась театральная труппа из учеников, но все мероприятия происходили под предельно незаметным, но неусыпным контролем иезуитов. Выпускник коллежа обычно получал хорошее образование и привычку к труду, но только небольшое число учеников становились членами ордена. Иезуиты ставили своей целью создать весьма широкий слой населения, который должен был стать твердой опорой церкви (10, с. 299).

Р. Мандру приводит данные о социальном составе учеников иезуитских коллежей, основанные на архивных материалах. Так, в коллеже города Шалон на Марне в XVII в. только 3% воспитанников принадлежали к знати, меньше десяти - к крупной буржуазии, около тридцати - к мелким чиновникам, более тридцати - к торговцам, более десяти - к крестьянам и более двадцати - к ремесленникам (10, с. 300). Таким образом, цифры показывают, что большинство учеников иезуитского коллежа принадлежали к средним и низшим слоям общества. Шалон на Марне может считаться типичным средним городом Франции. Если мы сравним социальный состав учащихся с социальным составом такого крупного города, как Бордо, картина будет иная: число крестьян составит менее одного процента, ремесленников не более четырех процентов, зато сыновей чиновников будет более 50% (10, с. 300). Здесь господствуют чиновники, отчасти крупная буржуазия и торговцы. А вот в маленьком городишке Бийом совершенно иной социальный состав: доля детей крестьян превышала двадцать процентов, ремесленников - десять. Следует отметить, что в основном в иезуитские коллежи поступали дети зажиточных крестьян, ибо за образование в иезуитских коллежах, как правило, нужно было платить. Сравнительный анализ социального состава воспитанников коллежа в Шалоне на Марне XVII-XVIII вв. доказывает, что на протяжении многих лет картина не менялась, представители аристократии составляли еле заметное меньшинство, выходцы из среды крупной буржуазии также не составляли в среднем больше десяти процентов. В XVIII в. среди учеников коллежа насчитывалось около шестидесяти процентов детей чиновников и торговцев и тридцать процентов детей крестьян и ремесленников (10, с. 301).

Итак, средние и даже низшие слои составляли массу воспитанников иезуитов. Из них очень немногие вступали в орден. Этой задачи не ставили и руководители ордена иезуитов. Их цель заключалась в том, чтобы пополнить общество верными католиками. Но задача эта оказалась невыполненной. Питомцы католических коллежей стали главными врагами католицизма. Вольтер и Дидро - воспитанники иезуитов, теоретики утопического коммунизма Мелье, Мабли и Дешан также получили религиозное образование. Все это было не случайно. В силу объективных обстоятельств выпускники иезуитских коллежей и других духовных заведений оказались не востребованы обществом. Они с трудом находили себе место в жизни. Ибо многие не хотели возвращаться к занятиям своих отцов. Сталкиваясь с суровой социальной несправедливостью, они быстро начинали поклоняться тому, что проклинали их бывшие учителя, т. е. идеям просвещения. Вольтер, Монтескье, Руссо и Дидро нашли в их среде самых пламенных сторонников. Таким сложным путем на протяжении двух веков в стране формировалась большая оппозиционная интеллигенция, сыгравшая определенную роль во Французской революции.

Мишель де Серто, известный французский историк и культуролог, в отличие от Робера Мандру, не был учеником Л. Февра, но продолжал традиции «Анналов» в области истории культуры. Будучи членом ордена иезуитов, М. де Серто издал письма одного из крупнейших иезуитских мистиков - Ж. -Ж. Сюрена. Читая эту переписку, можно убедиться не только в гигантской эрудиции М. де Серто как историка церкви, но и признать его глубоким знатоком современной историографии и культурологии. М. де Серто принадлежит к тем религиозным мыслителям, которые стремятся предельно объективно анализировать факты, а также взгляды других историков культуры. Ученый считает, что современное понимание религиозной жизни прошлого не может быть действительным без изучения культуры и менталитета определенной эпохи (12).

Мишель де Серто отмечает, что характер духовной жизни во Франции XVII в. отличался от характера духовной жизни XVI в. Эпоха религиозных войн разделила всю страну на два лагеря - католиков и протестантов, непримиримых врагов. Вообще XVII в. — эпоха религиозного плюрализмa. До 1685 г. протестанты жили в духовной изоляции. В католическом же лагере между янсенистами, иезуитами, доминиканцами шла невидимая миру ожесточенная борьба, что вызывало определенное напряжение в обществе. Характерен новый вид религиозной борьбы: противники обвиняли друг друга не в ереси, а в аморализме. Произошло, как пишет Мишель де Серто, структурное изменение целого ряда ценностей. В средние века, включая XVI в., мораль и религия были неразделимы, всякое отступление от господствующей морали называлось ересью. Так, например, государственный изменник считался еретиком. Но в XVII в. начались изменения во взглядах, которые закреплялись в стереотипах массового сознания. Спустя сто лет Руссо писал Вольтеру: «Догма сейчас ничего не значит, а мораль означает все» (цит. по: 12, с. 153).

Этика стала играть роль теологии, и это наложило отпечаток на всю культуру «Старого порядка». Следующие явления содействовали такой мутации массового сознания: 1) подчинение церкви государственному интересу; 2) политизация поведения священников и строгая регламентация церковной практики; 3) разрыв между долгом подданного и мистицизмом; 4) закрепление в общественном сознании понятий «лояльность» и «польза»; 5) бюрократизация церковного культа (12, с. 156).

Уже в XVI в. происходит отделение теологии от культуры, и в связи с разделением церквей появляются две «официальные теологии»: католическая и протестантская. Но, как отмечает Мишель де Серто, контрреформационная теология отличалась от средневековой, она была менее догматической и более плюралистичной. «Письма к провинциалу» Б. Паскаля это отлично доказывают (4). Ослабление церковной догматики изменило не только культуру, но и образ жизни. В народе резко усилилось суеверие: популярность колдовства и охота за ведьмами. В аристократической среде появился религиозный скептицизм - либертинаж. На протяжении XVII в. шел процесс, который можно обозначить как «расчленение религиозного мировоззрения» (12, с. 160). В конце века один из первых просветителей Бернар Ле Бовье де Фонтенель (1657-1757) уже говорил об изучении «системы христианских религий» (12, с. 160). Либертенизм или атеизм существовал в XVII в. полуподпольно. Либертены были людьми, принадлежавшими к знатным фамилиям, к ним примыкали также представители нарождающейся интеллигенции, особенно известные врачи, пользовавшиеся большим влиянием. От них требовалось одно — не говорить о своих взглядах публично и формально иногда исполнять церковные обряды. В деревнях, особенно в первой половине XVII в., царил террор: тысячи женщин (мужчины страдали в меньшей степени, но то были жертвы «самодеятельной инквизиции») сжигались на кострах.

Во второй половине столетия число расправ уменьшилось: высшие судебные власти в это время не только не поддерживали стихийные преследования ведьм, но нередко выступали против обвинений в колдовстве.

В XVII в. во Франции существовало много мистических школ, но к мистикам в основном принадлежали представители социальных верхов. Королевская власть относилась враждебно к мистицизму, как и к стихийному суеверию, и к атеизму, она требовала, прежде всего, формального единообразия и порядка, но ни Ришелье, ни Мазарини, ни Людовик XIV не применяли методов испанской инквизиции. Печальным исключением выглядит отмена Нантского эдикта в 1685 г. Хотя французские протестанты были самыми дисциплинированными подданными короля, но именно они стали жертвой королевской воли, которая, как показала впоследствии история, не совпадала с государственными интересами страны. Так бывает, когда государственный интерес является фактически интересом одной личности.

Казалось, изгнание гугенотов означало полную победу католицизма во Франции. Так, изгнание евреев и мавров из Испании свидетельствовало о безраздельной власти католичества в этой стране. Если исследовать характер развития культуры обеих стран в XVII в., то можно заметить значительное различие. Обе страны великой культуры, но в Испании в эту эпоху не могли существовать ни Мольер, ни Декарт, ни Паскаль, ибо там, на защите догмы стояла инквизиция. Во Франции же все решала верховная светская власть. В 1681 г. духовник Людовика XIV иезуит Ла Шез писал генералу своего ордена, что королевские ордонансы должны во Франции быть незыблемыми законами для всех иезуитов, живущих в этой стране (12, с. 169). Если иезуиты, которые ранее славились своей независимостью, полностью подчинились лично королю, то все другие конгрегации и клир были во власти королевской администрации. Под ее наблюдением отныне проходила вся религиозная жизнь. Были составлены инструкции по проведению церковных служб. Культурное воспитание народа - таков главный принцип централизованного управления. Было предписано внушать простым людям основы современной теологии и укреплять культ короля (12, с. 170). Политика и религия слились воедино, земное и небесное как бы соединились, но это явление привело к непредсказуемым последствиям: подлинно религиозные люди осознанно или неосознанно стремились найти некое духовное убежище от церковного формализма, а поколения молодых людей бессознательно становились равнодушными к религии.

Существует тенденция утверждать, будто XVII в. был веком торжествующего христианства. Мишель де Серто относится к этому взгляду с осторожностью. Он пытается проследить процессы в культурной и религиозной жизни Франции, которые содействовали тому, что в XVII в. Франция показала невиданные примеры ненависти к христианской религии, как в сфере правительственной политики, так и в сфере массового сознания. Характерно, что в других католических странах - Италии и Испании - мы не видим подобных примеров. Не было подобных примеров и в протестантских странах после реформации. Нигде в Европе мы не найдем таких влиятельных врагов церкви как Вольтер, Дидро и Гольбах.

Как известно, культурно-религиозная политика французского абсолютизма встретила сопротивление у янсенистов - сторонников богослова Янсения, который в книге «Августин» защищал традиционные ценности от «модернистских новаций». М. де Серто не рассматривает догматику теологического спора. Он по-новому пытается вглядеться в факты, знакомые читательской аудитории. Главным памятником борьбы иезуитов с янсенистами является великий трактат Блеза Паскаля «Письма к провинциалу», в котором разоблачается лицемерие иезуитов (4). Не возражая Паскалю, М. де Серто стремится рассмотреть эту борьбу сквозь призму трех последующих столетий.

М. де Серто считает, что в многочисленных иезуитских трактатах термин «состояние души», употреблявшийся в традиционной богословской и мистической литературе, а также различные степени этого состояния, «порядок насыщения души благодатью... подверглись новому исследованию» (12, с. 176-177). В доиезуитской схоластике тема молитвенного состояния и тема душевного самоусовершенствования как сосуществующих не рассматривалась. Иезуиты, которые с самого начала преследовали цель совместить религиозное состояние с социальной практикой, разрабатывали проекты нового религиозного поведения в новых условиях общественной и политической жизни. Поэтому «гибкая мораль» ордена сливалась, по мнению М. де Серто, с социальной политикой абсолютистского королевства. Это был один из первых опытов поставить психологию на службу социальной и культурной политике государства. Не случайно Шарль Перро, сочинитель «Волшебных сказок», «был фактически министром культуры Людовика XIV и одним из создателей культа «Короля-солнца». Ш. Перро был также автором поэмы «Век Людовика Великого» (5, с. 41-58).

Против унификации религиозной жизни и гибкости морали во Франции выступали не только янсенисты, но и другие представители мистических школ, весьма распространенных в стране. Мистики, несогласные с «испанской моралью», находились даже среди ордена иезуитов. «Испанской моралью» гибкую иезуитскую мораль можно назвать не только потому, что ее главными проповедниками были испанцы - Молина, Санчес, Суарес, Эскобар и др., но потому, что как официальная мораль она восторжествовала в Испании в XVII в., когда крайняя религиозная нетерпимость уживалась с церковным примирением с крайней распущенностью поведения королевского двора и знати. Пуританская мораль янсенистов и других мистических школ часто сочеталось с политическим радикализмом и с требованием религиозной и духовной свободы. Во Франции в конце XVII и в начале XVIII в. шла приглушенная борьба в сфере религиозной и культурной жизни.

Культурная и связанная с ней религиозная жизнь во Франции была противоречива. Повседневная практика дает примеры сосуществования самых противоположных видов социального поведения. «Когда Паскаль анализирует состояние веры, истина о которой он говорит не идентична никакому реальному поведению и никакому доктринальному толкованию» (12, с. 183). Б. Паскаль в «Письмах к провинциалу», с точки зрения развития этики, «был более современен и проницателен, чем его противники казуисты» (12, с. 183). Но с точки зрения реальной жизни своего времени, он оставался близким к образу одинокого пророка, несмотря на успех его книги. Синтез государственной политики и «гибкой» религии стал нормой жизни, навязываемой всесильной королевской властью. Эта норма привела в последние десятилетия XVII в. к определенному упадку культурной жизни во Франции.

В XVIII в. положение изменилось. Гибкая религиозная мораль иезуитов, против которой выступал Б. Паскаль, могла сохранять религиозное влияние и загонять в подполье либертенизм знати только с помощью инквизиции. Но при ее отсутствии, как показывает пример Франции, атеизм и вольнодумство стали оказывать влияние на культурную жизнь не только аристократии, но и на все более многочисленную городскую интеллигенцию. Типичным абсолютным монархом XVIII в. был Фридрих II, убежденный атеист, хотя номинально - глава лютеранской церкви Пруссии. Теперь не Бог, а обожествленный человеческий разум стал вершителем истории, «аристократы, коммерсанты, банкиры, функционеры — все были преданы амбициозному и расчетливому разуму» (12, с. 186). Такова была парадигма менталитета верхов. Но это еще больше увеличивало разрыв между элитарной и народной культурами в XVIII в. Идея христианского братства отошла на второй план. Ныне не только аристократы, но и средние буржуа считали себя цивилизованными людьми, а крестьян, которые составляли подавляющее большинство населения Франции, мнили дикарями. Язык французского Просвещения обогатился многими словами, неизвестными простому народу, именно в это время в стране дистанция между языком народа и языком городских салонов сильно увеличивается.

В век Просвещения приходит осознание изучения народного языка как особого явления. В XVIII в. критический анализ религии с точки зрения светской науки получает статус этической задачи. Многие ученые того времени не испытывали вражды к религии, но она теряла свою сокровенную сущность, превращаясь в объект исследования. Монтескье писал: «Все религии зиждутся на принципах, полезных обществу» (цит. по: 12, с. 188). Но сама подобная постановка вопроса подразумевает возможность мысли о вредности религии, которая стала распространенной в философии просветителей. Одним из центральных понятий идеологии Просвещения стало понятие «общественная польза». Общественная польза определяется разумом. Стало аксиомой положение, что носителями разума являются философы-просветители. Так образовался новый «светский клир».

Учение об «общественной пользе» подменило евангельское слово «ближний» безличным термином «другие», лишило души слово «народ», превратив массы в поле для экспериментов носителей разума. Благодаря Руссо в сознании интеллигенции XVIII в. утвердился миф о всесилии образования, о возможности вкладывания «высоких истин» в массовое сознание «дикого народа». М. де Серто утверждает, что накануне и во время Французской революции элитарная культура наиболее активно влияла на народную культуру. «Проекция абстрактных истин на массовое сознание приводила к совершенно непредсказуемым результатам» (12, с. 190).

В XVIII в. в массовую психологию, прежде всего во Франции, внедрились, как отмечает М. де Серто, три социокультурных термина: «политика», «сознание», «прогресс» (12, с. 191). Королевская политика еще в царствование Людовика XIV стала отождествляться с Божьей волей, а в век Просвещенного абсолютизма - с государственной политикой. В утопических трактатах Морелли и Дидро, где проектировалось будущее коммунистическое общество, государственная политика означала тотальный контроль над людьми (12, с. 192). В XIX в. термин «государственная политика» стал сочетаться в мечтах о государстве полной социальной справедливости с такими стереотипными словосочетаниями как «опора на законы науки» и «коллективное творчество масс».

Французское слово «conscience» означает и «совесть», и «сознание». Действительно, в средние века понятие «христианское сознание» было предельно близко к понятию «совесть». В эпоху реформации в протестантских религиях, в мирском аскетизме пуритан понятие «совесть» уступило разумному служению Богу. Логическим завершением подобной рациональной линии в теологии стало учение Канта о категорическом императиве. Руссо, хотя был уроженцем кальвинистской Женевы, по своим религиозным воззрениям стоял ближе к католикам, чем к протестантам; он называл совесть «божеским инстинктом», но фактически считал ее естественным инстинктом. Он отрицал главенство разума над совестью, исходя из примата практики, а не веры. «Я думаю, что главное в религии — это дело. Нужно быть добрым, милосердным, сострадательным, гуманным человеком. Каждый, кто воистину таков, тот достоин быть спасенным», писал Руссо (цит. по: 12, с. 194).

Из этого высказывания Руссо видно, что «дело» для Руссо есть не нечто, направленное внутрь себя, как у протестантов, а труд прежде всего во имя совершенства внешнего мира. М. де Серто подчеркивает, что Руссо, подобно языческим философам, не считал добродетель атрибутом Бога. Совесть в руссоистской гражданской религии скорее всего совпадает со стремлением к общему благу. В вульгаризированной якобинцами теории женевского мечтателя слово «conscience» фактически совпало с термином «революционное сознание».

Третьей важной метаморфозой светской этики, оказавшей огромное влияние на культурную жизнь Франции и всей Европы, было укоренение в общественном сознании термина «прогресс». В последней трети XVIII в. этот термин был очень популярен. Вместо тайны откровения теперь в общественном сознании начинает утверждаться идея непрерывного совершенствования науки и культуры. Прогресс означал разумный порядок, противостоящий предрассудкам старины. Спор об абсолютном превосходстве новой культуры над старой велся еще в эпоху Людовика XIV, когда Перро и Фонтенель доказывали превосходство современной культуры над античной, а Буало и Расин отстаивали непревзойденность красоты памятников Греции и Рима. Но в конце XVIII в. речь шла не столько об искусстве, сколько о развитии всех сторон жизни.

Тезис об элите, которая цивилизует народ, стал аксиомой для подавляющего большинства интеллигенции. Но, как отмечает М. де Серто, в идее культуртрегерства того времени сохранилось многое от средневековья: мессианизм и энтузиазм, свойственный крестоносцам. Однако человеческая природа не так легко подчиняется интеллектуальным проектам. Просветители быстро столкнулись с потоком неконтролируемых событий в эпоху Революции. «Формальная дехристианизация еще более усилила «религиозные» настроения, но они отныне были отчуждены от Логоса, который придавал истинность религии» (12, с. 195). Поэтому революционный фанатизм может иметь только временный характер, считает М. де Серто.

Мишеля де Серто интересует проблема эволюции религиозной и народной культуры в провинции. Хотя известно, что в XVIII в. деревенский клир в основном формально относился к своим обязанностям, сельское население весьма активно потребляло «литературу книгонош»: жития святых, книги, описывающие пребывание душ в Чистилище, рассказывающие о Страшном суде и т. д. Мысли о смерти, о добре и зле по-прежнему волновали сердца миллионов крестьян, но новые стереотипы, порожденные эпохой Просвещения, незаметно деформировали традиционные представления. «Они не изменяли символы коллективного сознания» (12, с. 198). Соприкосновение с новой информацией приводило к идеологизации старых образов и к подчинению новым стереотипам. Это был в основном бессознательный процесс. М. де Серто отмечает, что в конце XVIII в. в народном сознании произошла своеобразная перемена. «Фундаментальный вопрос в истории менталитета и в социологии культуры заключается в том, чтобы выяснить как в XVIII в. осуществлялся процесс еще большего отчуждения между двумя культурами: одной элитарной, ученой, буржуазной и другой народной, средневековой, карнавальной» (12, с. 199). Характерно, что это отчуждение не исключало влияния элитарной культуры на народную, ибо взаимосвязь между разными культурами существовала всегда.

Средневековое общество было иерархично. Феодальная иерархия была освящена церковью и закреплена в традиции. Каждый член этого общества ощущал сознательно или бессознательно некое единство с другими, даже если он находился на самой низшей ступени иерархической лестницы. Элита эпохи Просвещения сознательно или бессознательно рассматривала себя как касту мудрецов, имеющую мало общего с диким народом. Она сама поставила себя в положение иного социального этноса. Надо отметить, что еще в XVII в. язык аристократии отличался от языка простонародья, но это был язык салонов и двора, который за малым исключением не был языком повседневной жизни. Аристократов XVII в. можно сравнить со средневековыми рыцарями, которые в одинаковой степени владели и куртуазным, и простонародным языком. Но французский литературный и эпистолярный язык XVIII в. - гордость французской и мировой культуры — был совершенно оторван от повседневной жизненной практики простого народа. Язык книги и письма в эпоху Просвещения сильно влиял не только на язык интеллигента того времени, но и на произношение. Аристократическое произношение предельно резко отличалось от простонародного, особенно в провинции. Строгим фонетическим правилам уделялось значительное внимание в воспитании. Хранителями норм произношения были Академия и классический театр.

Кюре, беседовавший с крестьянами на простом языке и певший молитвы на латыни, был для них не чужим человеком, отчего латинские молитвы казались им хотя и таинственными, и сакральными, но близкими. «Религия, которая большинством философов Просвещения трактовалась как собрание вульгарных предрассудков, являлась для менталитета интеллигенции антиподом разума» (12, с. 203). Поэтому речь французского интеллигента была чужда, как по содержанию, так и по словарному запасу и произношению, массе людей, а непонятное, как известно, раздражает. Если бы французское духовенство также не подверглось «облучению» философией Просвещения, то, возможно, мы бы не стали свидетелями той вражды к духовенству, которую испытало население Франции во время революции. Влияние идеологии Просвещения на французский клир, - проблема, пока еще слабо разработанная в науке.

В конце XVII в. королевская власть начала активную кампанию по бюрократизации церкви. Священник должен был быть проводником культа короля. Его проповедь не должна была носить характер вдохновенной импровизации, а читалась в соответствии с инструкцией, утвержденной епископом. Живое слово стало исчезать из проповеди. Бюрократический трафарет порождал безразличие и у пастырей, и у паствы. В XVIII в. бюрократическая политика продолжалась по инерции. Новые поколения кюре разучились находить общий язык со своими прихожанами. Формально исполняя свои обязанности, они жили интересами местной элиты. Не столь был опасен пламенный богоборец священник Ж. -Ж. Мелье, как равнодушный к религии и стремящийся мыслить модно завсегдатай светских салонов епископ или аббат, чей пример влиял на мировоззрение сельских священников. Большинство грамотных людей все более дистанцировалось от народной культуры. «Начиная с 1750 г., разрыв стал увеличиваться быстрее» (12, с. 207). Параллельно с таким разрывом культур в сельской местности усилилась власть мелких чиновников-сержантов, которые наблюдали за порядком во время церковных служб. В прошлые времена священник обличал на проповеди грешников, приводя примеры из жизни своего прихода. Теперь он должен был читать утвержденный на епископальной конференции текст, который мало кто слушал.

Чем меньше был авторитет кюре, тем больше возрастало влияние сельского трактирщика, ибо именно в трактире крестьяне могли обсудить политические вести и местные новости. В трактире, на рынке, на ярмарке формировались новые настроения миллионов (12, с. 203). Нельзя сказать, что власть не замечала растущего равнодушия крестьян. Еще в 1705 г. начальник французской полиции Дельмар опубликовал специальный свод правил надзора над населением. Эти правила мелочно регламентировали порядок церковных ритуалов; под предлогом борьбы против дикости запрещались старинные карнавальные традиции. Но подобная политика, проводимая на протяжении XVIII в., привела еще к большему разрыву между элитарной и народной культурами.

В заключение следует отметить, что в работах Мишеля де Серто нет исторических открытий, но его культурологический анализ знакомого специалистам материала весьма поучителен. Он подводит нас к теме «революция и отчуждение культур», приоритет в разработке которой принадлежит М. М. Бахтину. Революция показала, какую цену заплатила просвещенная элита за отрыв от народной культуры, за непонимание тех процессов, которые шли в массовом сознании. В густонаселенных, экономически развитых регионах Франции крестьяне, как правило, присоединялись к карнавальным шествиям революционных горожан, распевавших карманьолу, а в таких заповедниках средневековья, как Вандея и Бретань, сельское население поднялось на защиту церкви и старых традиций. Влияние же католической церкви в Испании объясняется тем, что еще со времен инквизиции церковь не боролась с народной карнавальной культурой, а стремилась использовать ее в своих интересах.

Если Робер Мандру в своих исследованиях проследил особенности социально-культурного развития Франции на пути к революции, то Мишель де Серто стремился показать, каковы были последствия взаимного отчуждения культур в эпоху Просвещения. Изучение подобных процессов полезно для понимания истории и культуры других стран.

Список литературы

Гуревич А. Я. Жак Ле Гофф и «новая историческая наука» // Ле Гофф Ж. Цивилизация средневекового Запада. - М., 1992. - С. 352-373

Гуревич А. Я. Уроки Люсьена Февра // Февр Л. Бои за историю. - М., 1991. - С. 501-541; Гуревич А. Я. Исторический синтез и Школа «Анналов». - М., 1993. - 328 с.

Жирмунская H. A. Трагедии Расина // Расин Ж. Трагедии. - Новосибирск, 1997. -С. 377-408.

Паскаль Б. Письма к провинциалу // Августин Аврелий, Блез Паскаль. Лабиринты души. - Симферополь, 1998. - С. 219-412.

Спор о древних и новых. - M., 1985. -471с.

Февр Л. Бои за историю. -М., 1991. -630 с.

Хейзинга И. Осень средневековья. - М., 1988. - 540 с.

Шатобриан Ф. -Р. де. Гений христианства // Эстетика раннего французского романтизма. - М., 1982. - С. 94-220.

Mandrou R. De la culture populare aux XVIIe et XVIIIe siecles. - P., 1964. - 222 p.

Mandrou R. La France au XVII et XVIII s. - P., 1974. - 360 p.

Mandrou R. Magistrats et sorciers au XVII s. - P., 1968. - 586 p.

Certeau M. de. L\"ecriture de l\"histoire. - P., 1975. - 320 p.

Surin J. -J. Correspondance. - P., I960. - 1728р.

Текст цитируется с по изданию: Каплан А. Б. Французская школа «Анналов» об истории культуры // Идеи в культурологии XX века. Сборник обзоров. - М., 2000. СС. 51 - 73.