Download Full Mastering PHP design patterns develop robust and reusable code using a multitude of design patterns for PHP 7 Ali PDF All Chapters
Download Full Mastering PHP design patterns develop robust and reusable code using a multitude of design patterns for PHP 7 Ali PDF All Chapters
com
https://textbookfull.com/product/mastering-php-design-
patterns-develop-robust-and-reusable-code-using-a-multitude-
of-design-patterns-for-php-7-ali/
OR CLICK BUTTON
DOWNLOAD NOW
https://textbookfull.com/product/design-patterns-in-php-and-
laravel-1st-edition-kelt-dockins/
textboxfull.com
https://textbookfull.com/product/puppet-best-practices-design-
patterns-for-maintainable-code-1st-edition-chris-barbour/
textboxfull.com
https://textbookfull.com/product/java-design-patterns-a-tour-
of-23-gang-of-four-design-patterns-in-java-1st-edition-vaskaran-
sarcar/
textboxfull.com
https://textbookfull.com/product/java-design-patterns-a-tour-
of-23-gang-of-four-design-patterns-in-java-1st-edition-vaskaran-
sarcar-2/
textboxfull.com
https://textbookfull.com/product/design-patterns-by-tutorials-
learning-design-patterns-in-swift-4-2-joshua-greene/
textboxfull.com
Mastering PHP Design Patterns
Junade Ali
BIRMINGHAM - MUMBAI
Mastering PHP Design Patterns
Copyright © 2016 Packt Publishing
All rights reserved. No part of this book may be reproduced, stored in a retrieval system, or
transmitted in any form or by any means, without the prior written permission of the
publisher, except in the case of brief quotations embedded in critical articles or reviews.
Every effort has been made in the preparation of this book to ensure the accuracy of the
information presented. However, the information contained in this book is sold without
warranty, either express or implied. Neither the author, nor Packt Publishing, and its
dealers and distributors will be held liable for any damages caused or alleged to be caused
directly or indirectly by this book.
Packt Publishing has endeavored to provide trademark information about all of the
companies and products mentioned in this book by the appropriate use of capitals.
However, Packt Publishing cannot guarantee the accuracy of this information.
Livery Place
35 Livery Street
ISBN 978-1-78588-713-0
www.packtpub.com
Credits
Junade, an avid contributor to the PHP community, has also spoken at PHPTek and the
Lead Developer Conference. In addition to this, Junade was interviewed by Cal Evans for
Voices of the ElePHPant, and he has appeared on the PHP Roundtable. In this spirit, Junade
is proud of his local PHP user group: PHPWarks. Currently, Junade works at CloudFlare as
a polymath, and helps make the Internet more secure and faster.
Outside of development, Junade has an interest in law and political campaigns and is a
published author on constitutional law.
About the Reviewer
Sworup Shakya has worked as a web developer for more than ten years. He started his
career as a Flash ActionScript developer, before moving on to ASP.NET MVC, and finally to
PHP. During his time as a developer, Sworup worked extensively with frameworks, be it
ASP.NET MVC or AngularJS or Laravel. However, while he was working as an
ActionScript developer, he had to create one, which gave him knowledge of design patterns
and OOP concepts that has helped him improve in order to be able to work on the
frameworks he had to work on later.
Sworup likes to keep on top of the current technologies, keeping an eye on StackOverflow,
Laracasts forums, and occasional podcasts. He posts on these mediums whenever he can
and is looking to start a technical blog documenting his experiences at http://sworup.com.
np/. You can reach him at [email protected].
I would like to thank Suzanne Coutinho, Francina Pinto and Chaitanya Nair of Packt Publishing for
giving me this opportunity and helping me through the review process. I would like to thank my
friends, family and colleagues for their unconditional support.
www.PacktPub.com
For support files and downloads related to your book, please visit www.PacktPub.com.
Did you know that Packt offers eBook versions of every book published, with PDF and
ePub files available? You can upgrade to the eBook version at www.PacktPub.com and as a
print book customer, you are entitled to a discount on the eBook copy. Get in touch with us
at [email protected] for more details.
At www.PacktPub.com, you can also read a collection of free technical articles, sign up for a
range of free newsletters and receive exclusive discounts and offers on Packt books and
eBooks.
https://www.packtpub.com/mapt
Get the most in-demand software skills with Mapt. Mapt gives you full access to all Packt
books and video courses, as well as industry-leading tools to help you plan your personal
development and advance your career.
Why subscribe?
Fully searchable across every book published by Packt
Copy and paste, print, and bookmark content
On demand and accessible via a web browser
Table of Contents
Chapter 1: Why "Good PHP Developer" Isnt an Oxymoron 8
Coding style – the PSR standards 11
Revising object-oriented programming 11
Polymorphism 11
Traits (multiple inheritance) 16
Scalar type hints 19
Limiting debug access to private/protected properties 21
Setting up the environment with Composer 23
The Gang of Four (GoF) 26
Creational design patterns 27
Dependency injection 27
Structural design patterns 28
Behavioral design patterns 28
Architectural patterns 28
Summary 29
Chapter 2: Anti-Patterns 30
Why anti-patterns matter 31
Not invented here syndrome 34
Third-party dependencies with Composer 36
God objects 40
Environment variables in PHP source 43
Singletons (and why you should be using dependency injection) 44
Dependency injection 45
Database as IPC 45
Auto-increment database IDs 46
Cronjob imitating service 47
Software in place of architecture 47
Interface Bloat 49
Cart before the horse 51
Separation of development and operations 52
Excessive separation of development responsibilities 52
Error suppression operator 53
Blind faith 54
Sequential coupling 55
The big rewrite 58
Automated tests 59
Service splitting 60
Perfectly staged migrations 61
Tester-Driven Development 62
Bloated optimization 62
Analysis paralysis 63
Bikeshedding 63
Premature optimization 63
Uneducated manager syndrome 64
Wrong rocky foundations 64
Long methods 65
Magic numbers 70
Summary 70
Chapter 3: Creational Design Patterns 72
Software design process 72
Simple Factory 74
Factory Method 78
Abstract Factory pattern 82
Lazy initialization 90
Builder pattern 93
Prototype pattern 97
Summary 102
Chapter 4: Structural Design Patterns 103
Agile software architecture 104
Decorator 105
Adapter 108
Class Adapter 108
Object Adapter 110
FlyWeight 113
Composite 117
Bridge 120
Proxy pattern 123
Facade 127
Summary 130
Chapter 5: Behavioral Design Patterns 132
Personality traits for passionate programmers 133
Observer pattern (SplObserver/SplSubject) 135
[ ii ]
Iterators 139
IteratorAggregate 139
Iterator 141
The many iterators of PHP 142
Generators 143
Template Method design pattern 148
Chain of Responsibility 152
Strategy design pattern 159
Specification design pattern 163
Scheduled Task pattern 167
Summary 168
Chapter 6: Architectural Patterns 170
Model-View-Controller (MVC) 170
Service-oriented architecture 172
Microservices 173
Asynchronous queueing 177
Message Queue pattern (Getting started with RabbitMQ) 177
Publish-Subscriber pattern 187
Summary 191
Chapter 7: Refactoring 192
What is refactoring? 192
Test, test, and test again 193
Code smells 194
Long methods and duplicated code 195
Large class 197
Replacing complex logical statements and switch statements with
polymorphism or the Strategy Pattern 198
Duplicating code following a single control structure 200
Long Parameter List and primitive obsession 200
Indecent exposure 203
Feature envy 204
Inappropriate intimacy 206
Deeply nested statements 206
Remove assignments to parameters 207
Comments 208
Encapsulating Composite with Builder 208
Replacing hard-coded notifications with Observer 209
Replacing one/many distinctions with Composite 209
[ iii ]
Separate versions with Adapters 210
What do I tell my manager? 210
Summary 211
Chapter 8: How to Write Better Code 212
Nature of a HTTP request 212
RESTful API design 231
Stateless nature 231
Versioning 231
Filtering 232
Sorting 232
Searching 232
Limiting fields 233
Returning new fields 233
When in doubt – KISS 233
Software development life cycle 234
On Scrum, and real Agility 235
You need to sack people sometimes 237
Lean project management 239
YAGNI and defering decisions 239
Monitoring 240
Tests fight legacy 241
Behavior-Driven Development 243
Summary 250
Index 252
[ iv ]
Preface
Have you ever been to a PHP conference? If not, I’d highly recommend it, it is the closest
you can get to a living and breathing PHP community. A few weeks ago, I flew from
London to St. Louis, Misouri, to speak at php[tek] (the PHP conference run by
php[architect]). After the conference, there was a small tradition within the PHP community
known as WurstCon. Essentially, hundreds of PHP conference attendees cram themselves
into a small hot dog shop and host a hot dog convention, often to the complete surprise of
the staff there. Likewise, community nights at PHP events are the warmest and most
accepting community occasions you’ll ever run into; the PHP community is surely one that
other development language communities envy.
As of PHP 7, the PHP project has changed dramatically; but what I love, remains strong.
The warmth you will feel at any PHP conference, the openness in the documentation, and
adoption in the language. Yes, there are practices that are undoubtedly bad within PHP
itself; however, think of what the PHP community has recently achieved, ranging from
PHPUnit to Composer. Throughout this book, bear in mind the improvements in PHP 7, a
few of which I’ll share with you. The trajectory of the project is now certainly upwards, and
let’s not forget that this wasn’t always true. The PHP community has learned its lessons
from the past, whilst the language maintains the flexibility to write what is bad.
This book will seek to impart strong software engineering skills to you with the focus on
implementing them in PHP. At the time of publishing this book, there is a certain void and
a necessity for this kind of material. This book seeks to be the lighthouse that will not only
demonstrate software design theory, but also seek to impart practical information of real
value to improve the quality and maintainability of the code you write. This book leaves no
stone unturned throughout the software development cycle and will seek to confront the
reasons as to why the majority of software projects fail whilst also addressing design,
redesign, and safeguard effective code.
This book goes beyond traditional design patterns as envisaged by the Gang of Four and
details the practices that passionate PHP developers need to be successful as software
engineers or leads on detailed PHP projects. This book will introduce you to the core
knowledge required to understand project management techniques, why the majority
software development projects fail, and why you can make yours a success.
Preface
Originally, I gave thought to writing a book on PHP when Mandi Rose, who I worked with
previously, suggested I put together a book on the practices I’ve learned with PHP.
Needless to say, at the time that suggestion was made, the best of my career was
undoubtedly ahead of me; when the opportunity actually arose to write something like this,
I felt I had learned dramatically more as time progressed. By no means should you see this
book as the be-all and end-all of PHP practices; instead, you should use it to increase your
knowledge base on PHP, but by no means limit it to this. In this book, I aim to give
something, however small, back to the PHP community; after reading this book, I would
encourage you to get stuck in and share what you’ve learned with others.
Later in this book, I will advocate Extreme Programming as a methodology and courage as
a key value of this methodology. I will ask you to bear in mind the explanation of courage
in The Values of Extreme Programming: “We will tell the truth about progress and
estimates. We don't document excuses for failure because we plan to succeed. We don't fear
anything because no one ever works alone. We will adapt to changes whenever they
happen.” This is, of course, some key advice we should all follow and seek to genuinely
understand risks instead of cowering behind them. For many of us, the code we write
during parts of our career is the highest expression of our labor. Indeed, the late nights
turning into early mornings we spend debugging and developing are what ultimately allow
us to demonstrate the fruits of our labor. In essence, as software engineers, the code we
write defines who we are, as such we should be open to constantly refining and refactoring
our processes, which is what this book aims to support you in doing. I am incredibly
honored that you chose to allow me to help you to reach this end.
Chapter 3, Creational Design Patterns, discusses Gang of Four design patterns, namely those
surrounding object creation.
Chapter 4, Structural Design Patterns, covers how multiple classes and objects can be
combined to deliver a clearer interface.
[2]
Preface
Chapter 6, Architectural Patterns, revolves around resolving common issues related to the
architecture of a web application/system, potentially outside the code base itself.
Chapter 7, Refactoring, shows how to redesign code that has already been written to
improve maintainability.
Chapter 8, How to Write Better Code, covers a range of concepts that haven’t been discussed
elsewhere, and it also concludes with some advice for developers.
This book is not for the despairingly hostile or those who are passively antagonistic to
approaching new software engineering principles. It is not for those who seek to be lone
warriors, either. When altering a given code base, you must seek to improve the code of the
entire code base and everyone who works on it. You must be willing to take personal
responsibility of the code you write and not blame external factors. Code maintainability
cannot be improved unilaterally on shared code bases; you must write your code with the
intention of maintaining code quality for those who maintain it after you. Additionally, seek
to go into this book with the mindset of being able to share what you’ve learned, whether it
is with those in your teams, your user groups, or the larger PHP community. In other
words, approach this book with the end in mind; approach this book with the stated aim of
improving your code and those in the code base you maintain.
[3]
Preface
You will need a working knowledge of PHP and enough to build an application, but by no
means do you have to be a total expert at everything in PHP; a working knowledge of the
basics of software engineering will certainly give you a heads up.
You must encounter this book with an open mind and a willingness to have your
preconceptions about software development challenged. This book will confront some
truths about how you may be failing personally as a developer; it is vital that you approach
this book with a willingness to take these principles onboard.
This book presents a set of software development patterns and principles that you can
adopt. It is vital that you understand where these patterns should and shouldn’t be applied;
this will be explained throughout the book, especially in the last chapter.
A key tenet of reading this book is understanding what PHP is for and what it isn’t. I expect
you to enter this book understanding what problems you expect PHP to solve and what
you expect to use other software development languages to solve.
Conventions
In this book, you will find a number of text styles that distinguish between different kinds
of information. Here are some examples of these styles and an explanation of their meaning.
Code words in text, database table names, folder names, filenames, file extensions,
pathnames, dummy URLs, user input, and Twitter handles are shown as follows: "The
index.php file now yields this result".
[4]
Preface
New terms and important words are shown in bold. Words that you see on the screen, for
example, in menus or dialog boxes, appear in the text like this: "direct your web browser to
your chosen web server and you should see Hello world! pop up on screen."
Reader feedback
Feedback from our readers is always welcome. Let us know what you think about this
book—what you liked or disliked. Reader feedback is important for us as it helps us
develop titles that you will really get the most out of.
If there is a topic that you have expertise in and you are interested in either writing or
contributing to a book, see our author guide at www.packtpub.com/authors.
Customer support
Now that you are the proud owner of a Packt book, we have a number of things to help you
to get the most from your purchase.
[5]
Preface
1. Log in or register to our website using your e-mail address and password.
2. Hover the mouse pointer on the SUPPORT tab at the top.
3. Click on Code Downloads & Errata.
4. Enter the name of the book in the Search box.
5. Select the book for which you're looking to download the code files.
6. Choose from the drop-down menu where you purchased this book from.
7. Click on Code Download.
You can also download the code files by clicking on the Code Files button on the book's
webpage at the Packt Publishing website. This page can be accessed by entering the book's
name in the Search box. Please note that you need to be logged in to your Packt account.
Once the file is downloaded, please make sure that you unzip or extract the folder using the
latest version of:
The code bundle for the book is also hosted on GitHub at https://github.com/PacktPubl
ishing/Mastering-PHP-Design-Patterns/. We also have other code bundles from our
rich catalog of books and videos available at https://github.com/PacktPublishing/.
Check them out!
Errata
Although we have taken every care to ensure the accuracy of our content, mistakes do
happen. If you find a mistake in one of our books—maybe a mistake in the text or the
code—we would be grateful if you could report this to us. By doing so, you can save other
readers from frustration and help us improve subsequent versions of this book. If you find
any errata, please report them by visiting http://www.packtpub.com/submit-errata,
selecting your book, clicking on the Errata Submission Form link, and entering the details
of your errata. Once your errata are verified, your submission will be accepted and the
errata will be uploaded to our website or added to any list of existing errata under the
Errata section of that title.
[6]
Preface
Piracy
Piracy of copyrighted material on the Internet is an ongoing problem across all media. At
Packt, we take the protection of our copyright and licenses very seriously. If you come
across any illegal copies of our works in any form on the Internet, please provide us with
the location address or website name immediately so that we can pursue a remedy.
We appreciate your help in protecting our authors and our ability to bring you valuable
content.
Questions
If you have a problem with any aspect of this book, you can contact us
at [email protected], and we will do our best to address the problem.
[7]
Why "Good PHP Developer"
1
Isnt an Oxymoron
Back in 2010, MailChimp published a post on their blog, entitled Ewww, You Use PHP? In
this blog post, they described the horror when they explained their choice of PHP to
developers who consider the phrase good PHP programmer an oxymoron. In their rebuttal
they argued that their PHP wasn't your grandfathers PHP and that they use a sophisticated
framework. I tend to judge the quality of PHP on the basis of, not only how it functions, but
how secure it is and how it is architected. This book focuses on ideas of how you should
architect your code. The design of software allows for developers to ease the extension of
the code beyond its original purpose, in a bug-free and elegant fashion.
“Any fool can write code that a computer can understand. Good programmers write code
that humans can understand.”
This isn't just limited to code style, but how developers architect and structure their code.
I've encountered many developers with their noses constantly stuck in the documentation,
copying and pasting bits of code until it works; hacking snippets together until it works.
Moreover, I far too often see the software development process rapidly deteriorate as
developers ever more tightly couple their classes with functions of ever increasing length.
Software engineers mustn't just code software; they must know how to design it. Indeed
often a good software engineer, when interviewing other software engineers will ask
questions about the design of the code itself. It is trivial to get a piece of code that will
execute, and it is also benign to question a developer as to whether strtolower or
str2lower is the correct name of a function (for the record, it's strtolower). Knowing the
difference between a class and an object doesn't make you a competent developer; a better
interview question would, for example, be how one could apply subtype polymorphism to
Why "Good PHP Developer" Isnt an Oxymoron
a real software development challenge. Failure to assess software design skills dumbs down
an interview and results in there being no way to differentiate between those who are good
at it, and those who aren't. These advanced topics will be discussed throughout this book,
by learning these tactics, you will better understand what the right questions to ask are
when discussing software architecture.
“As a software developer, I envy writers, musicians, and filmmakers. Unlike software,
when they create something it is really done, forever”.
When developing software, we mustn't forget we are authors, not just of instructions for a
machine, but we are also authoring something that we later expect others to extend upon.
Therefore, our code mustn't just be targeted at machines, but humans also. Code isn't just
poetry for a machine, it should be poetry for humans also.
This is, of course, better said than done. In PHP, this may be found especially difficult given
the freedom PHP offers developers on how they may architect and structure their code. By
the very nature of freedom, it may be both used and abused, so it is true with the freedom
offered in PHP.
Technical debt, the eventual consequence of poor system design, is something that I've
found comes with the career of a PHP developer. This has been true for me whether it has
been dealing with systems that provide advanced functionality or simple websites. It
usually arises because a developer elects to implement a bad design for a variety of reasons;
this is when adding functionality to an existing codebase or taking poor design decisions
during the initial construction of software. Refactoring can help us address these issues.
SensioLabs (the creators of the Symfony framework) have a tool called Insight that allows
developers to calculate the technical debt in their own code. In 2011, they did an evaluation
of technical debt in various projects using this tool; rather unsurprisingly they found that
WordPress 4.1 topped the chart of all platforms they evaluated with them claiming it would
take 20.1 years to resolve the technical debt that the project contains.
[9]
Why "Good PHP Developer" Isnt an Oxymoron
Those familiar with the WordPress core may not be surprised by this, but this issue of
course is not only associated to WordPress. In my career of working with PHP, from
working with security critical cryptography systems to working with systems that work
with mission critical embedded systems, dealing with technical debt comes with the job.
Dealing with technical debt is not something to be ashamed of for a PHP developer, indeed
some may consider it courageous. Dealing with technical debt is no easy task, especially in
the face of an ever more demanding user base, client, or project manager; constantly
demanding more functionality without being familiar with the technical debt the project
has associated to it.
I recently e-mailed the PHP Internals group as to whether they should consider deprecating
the error suppression operator @. When any PHP function is prepended by an @ symbol, the
function will suppress an error returned by it. This can be brutal, especially where that
function renders a fatal error that stops the execution of the script, making debugging a
tough task. If the error is suppressed, the script may fail to execute without providing
developers a reason as to why this is. Usage of this operator may be described as an anti-
pattern in some situations, something we will cover in Chapter 4, Structural Design Patterns.
Despite the fact that no one objected to the fact that there were better ways of handling
errors (try/catch, proper validation) than abusing the error suppression operator and
that deprecation should be an eventual aim of PHP, it is the case that some functions return
needless warnings even though they already have a success/failure value. This means that
due to technical debt in the PHP core itself, this operator cannot be deprecated until a lot of
other prerequisite work is done. In the meantime, it is down to developers to decide the best
methodologies of handling errors. Until the inherent problem of unnecessary error
reporting is addressed, this operator cannot be deprecated. Therefore, it is down to
developers to be educated as to the proper methodologies that should be used to address
error handling and not to constantly resort to using an @ symbol.
Fundamentally, technical debt slows down development of a project and often leads to code
being deployed that is broken as developers try and work on a fragile project.
When starting a new project, never be afraid to discuss architecture as architecture meetings
are vital to developer collaboration; as one Scrum Master I've worked with said in the face
of criticism that “meetings are a great alternative to work”, he said “meetings are
work…how much work would you be doing without meetings?”.
[ 10 ]
Why "Good PHP Developer" Isnt an Oxymoron
Coding style being used to enforce consistency throughout a code base is something I
strongly believe in. It does make a difference to your code readability throughout a project.
It is especially important when you are starting a project (chances are you may be reading
this book to find out how to do that right) as your coding style determines the style the
developers following you in working on this project will adopt. Using a global standard
such as PSR-1 or PSR-2 means that developers can easily switch between projects without
having to reconfigure their code style in their IDE. Good code style can make formatting
errors easier to spot. Needless to say that coding styles will develop as time progresses, to
date I elect to work with the PSR standards.
I am a strong believer in the phrase: always code as if the guy who ends up maintaining your code
will be a violent psychopath who knows where you live. It isn't known who wrote this phrase
originally, but it's widely thought that it could have been John Woods or potentially Martin
Golding.
I would strongly recommend familiarizing yourself with these standards before proceeding
in this book.
Assuming you're aware of classes (and how to instantiate them), allow me to remind you of
a few different bits and pieces.
[ 11 ]
Why "Good PHP Developer" Isnt an Oxymoron
Polymorphism
Polymorphism is a fairly long word for a fairly simple concept. Essentially, polymorphism
means the same interface is used with a different underlying code. So multiple classes could
have a draw function, each accepting the same arguments, but at an underlying level, the
code is implemented differently.
In this section, I would like to talk about Subtype Polymorphism in particular (also known
as Subtyping or Inclusion Polymorphism).
Let's say we have animals as our supertype; our subtypes may well be cats, dogs, and
sheep.
In PHP, interfaces allow you to define a set of functionality that a class that implements it
must contain, as of PHP 7 you can also use scalar type hints to define the return types we
expect.
If we were to run this code without defining the classes we would get an error message as
follows:
Class Cat contains 2 abstract methods and must therefore be declared
abstract or implement the remaining methods (Animal::eat, Animal::talk)
Essentially, we are required to implement the methods we defined in our interface, so now
let's go ahead and create a class that implements these methods:
class Cat implements Animal
{
public function eat(string $food): bool
{
if ($food === "tuna") {
return true;
} else {
[ 12 ]
Why "Good PHP Developer" Isnt an Oxymoron
return false;
}
}
Now that we've implemented these methods, we can then just instantiate the class we are
after and use the functions contained in it:
$felix = new Cat();
echo $felix->talk(false);
So where does polymorphism come into this? Suppose we had another class for a dog:
class Dog implements Animal
{
public function eat(string $food): bool
{
if (($food === "dog food") || ($food === "meat")) {
return true;
} else {
return false;
}
}
Now let's suppose we have multiple different types of animals in a pets array:
$pets = array(
'felix' => new Cat(),
'oscar' => new Dog(),
[ 13 ]
Why "Good PHP Developer" Isnt an Oxymoron
We can now actually go ahead and loop through all these pets individually in order to run
the talk function. We don't care about the type of pet because the talk method that is
implemented in every class we get is by virtue of us having extended the Animals interface.
So let's suppose we wanted to have all our animals run the talk method. We could just use
the following code:
foreach ($pets as $pet) {
echo $pet->talk(false);
}
No need for unnecessary switch/case blocks in order to wrap around our classes, we just
use software design to make things easier for us in the long-term.
Abstract classes work in a similar way, except for the fact that abstract classes can contain
functionality where interfaces cannot.
It is important to note that any class that defines one or more abstract classes must also be
defined as abstract. You cannot have a normal class defining abstract methods, but you can
have normal methods in abstract classes. Let's start off by refactoring our interface to be an
abstract class:
abstract class Animal
{
abstract public function eat(string $food) : bool;
You might have noticed that I have also added a walk method as an ordinary, non-abstract
method; this is a standard method that can be used or extended by any classes that inherit
the parent abstract class. They already have their implementation.
Note that it is impossible to instantiate an abstract class (much like it's not possible to
instantiate an interface). Instead, we must extend it.
[ 14 ]
Why "Good PHP Developer" Isnt an Oxymoron
That's all we need to refactor in order to get classes to extend the Animal abstract class. We
must implement the abstract functions in the classes as we outlined for the interfaces, plus
we can use the ordinary functions without needing to implement them:
$whiskers = new Cat();
$whiskers->walk(1);
As of PHP 5.4 it has also become possible to instantiate a class and access a property of it in
one system. PHP.net advertised it as: Class member access on instantiation has been added, e.g.
(new Foo)->bar(). You can also do it with individual properties, for example, (new
Cat)->legs. In our example, we can use it as follows:
(new \IcyApril\ChapterOne\Cat())->walk(1);
Just to recap a few other points about how PHP implemented OOP, the final keyword
before a class declaration or indeed a function declaration means that you cannot override
such classes or functions after they've been defined.
[ 15 ]
Why "Good PHP Developer" Isnt an Oxymoron
Traditional multiple inheritance is a controversial process that is often looked down upon
by software engineers.
Let me give you an example of using Traits first hand; let's define an abstract Animal class
that we want to extend into another class:
class Animal
{
public function walk()
{
return "walking...";
}
}
[ 16 ]
Why "Good PHP Developer" Isnt an Oxymoron
So now let's suppose we have a function to name our class, but we don't want it to apply to
all our classes that extend the Animal class, we want it to apply to certain classes
irrespective of whether they inherit the properties of the abstract Animal class or not.
The problem now is that there is no place we can put them without using Horizontal Reuse,
apart from copying and pasting different bits of code or resorting to using conditional
inheritance. This is where Traits come to the rescue; let's start off by wrapping these
methods in a Trait called Name:
trait Name
{
function setFirstName(string $name): bool
{
$this->firstName = $name;
return true;
}
So now that we've defined our Trait, we can just tell PHP to use it in our Cat class:
class Cat extends Animal
{
use Name;
[ 17 ]
Why "Good PHP Developer" Isnt an Oxymoron
}
}
Notice the use of the Name statement? That's where the magic happens. Now you can call
the functions in that Trait without any problems:
$whiskers = new Cat();
$whiskers->setFirstName('Paul');
echo $whiskers->firstName;
class Animal
{
public function walk()
{
return "walking...";
}
}
[ 18 ]
Discovering Diverse Content Through
Random Scribd Documents
ansiedelte. Hätte nun nach erfolgtem Verschwinden der höchsten
Bergspitzen ein Tiefersinken der Landmassen nicht stattgefunden,
würden feste Riffflächen entstanden sein, auf denen sich im Laufe
der Zeiten niedrige Inseln gebildet hätten, eine Bildung der heutigen
Atolle würde naturgemäß dann nicht möglich gewesen sein. Einen
anderen Anschein hingegen gewinnt es, sofern man der Vermuthung
Folge giebt, daß, worauf ich schon hingewiesen, die ganze
ausgedehnte Inselwelt des stillen Ozeans einst aus verschiedenen
mächtigen Gebirgszügen, mit sehr zahlreichen thätigen Vulkanen
bestanden hat, deren Kratersenkungen oft einen sehr bedeutenden
Umfang gehabt haben müssen.
Wird dieses als erwiesen betrachtet, dann sind sämmtliche Atolls
einst für lange Zeit noch über die Meeresfläche ragende Krater
gewesen, Inseln, an deren Rändern die Koralle fortgebaut hat. Je
tiefer die Kraterinseln langsam versanken und ein gänzliches
Erlöschen der Vulkane die Folge war, ebenso schnell baute die
Koralle fort und füllte schließlich die weiten Oeffnungen aus. Die
Randriffe schon weit im Vorsprung konnten diese durch die bessere
Ernährung der Polypen auch schneller anwachsen, aber der innere
Aufbau und die allmähliche Auffüllung blieb zurück, was natürlich
war, sobald das allmähliche Sinken der Landmassen aufgehört
hatte, denn jetzt gestatteten die zusammenhängenden Randriffe den
bauenden Polypen nicht mehr oder doch zum Theil nur, durch die
von der Strömung offen gehaltenen Durchfahrten, die Zufuhr
frischen Meerwassers und mit diesem frische Nahrung.
Die eine Gewißheit aber liegt bestimmt vor, ehe die heutige
Beschaffenheit der Atolle herbeigeführt worden ist, sind große
Zeiträume hingegangen, die alle Spuren der Entstehung verwischt
haben.
Geht man von der Annahme aus, daß auffallende Veränderungen
nicht mehr stattfinden, vor allem ein weiteres Sinken seit vielen
Jahrhunderten unterblieben ist, dann müssen, da kein Stillstand im
Schaffen der Natur eintreten kann, der einst sämmtliche Atolls durch
die theils an der Innenseite, theils an den Außenriffen weiter
bauenden Korallen geschlossen werden, wie es bei zwei kleineren
Atolls in der Marschall-Gruppe bereits geschehen ist. Es werden,
wenn dadurch auch der innere Aufbau der Korallen zum Stillstand
gekommen ist, mehr oder weniger tiefe Wasserbecken
zurückbleiben, die naturgemäß versumpfen müssen, sobald der
vordringende Pflanzenwuchs festen Fuß faßt. Es ist erwiesen, daß
starke Strömungen, wie solche durch den gleichmäßigen Wechsel
von Ebbe und Fluth hervorgerufen werden, der Koralle am
Weiterbau hinderlich sind, wenigstens nur langsame Fortschritte
gestatten, dagegen findet man bei solchen Atolls, wo nur noch durch
enge Zufahrten ein Zugang möglich, daß die Koralle diese von innen
zu verbauen sucht. Begünstigt durch die immerwährend frische
Zufuhr an reichhaltigen Nährstoffen, führen die Polypen in der Nähe
der Durchfahrten allmählich kleinere Bänke auf, und bauen so
weiter, bis jede Oeffnung im Randriff schließlich verschlossen wird,
was bei den südlich liegenden Atolls zunächst zu erwarten ist.
Die Marschall-Gruppe bildet zwei nahezu parallel laufende Ketten
von Insel-Atolls in Nord-Nord-West- und Süd-Süd-Ost-Richtung, die
östliche die Ratock-, die westliche die Ralik-Gruppe; die
Bezeichnung beider Ketten ist der Sprache der Marschall-Insulaner
entlehnt. Die Ralik-Kette zählt 15, die Ratock- 14 Korallengruppen,
unter denen sich einige kleinere Inseln befinden, die keine Atolle
sind.
Soweit die geschichtliche Kunde reicht, soll bereits im Jahre 1529
der spanische Kommandant Alvaro de Saavedra einige Atolls
gesehen und besucht haben; nähere Nachrichten liegen aber erst
seit 1788 vor und zwar von den englischen Befehlshabern Marschall
und Gilbert, nach denen auch die beiden großen Inselgruppen
benannt worden sind. Trotzdem nun in den folgenden Jahrzehnten
der stille Ozean mehr und mehr von Kriegs- und Kauffahrteischiffen
befahren und erforscht wurde, sind doch nur spärliche Nachrichten
von jener fernen Inselwelt zu uns gekommen; bisweilen meldeten sie
auch von dort verschollenen oder ermordeten Schiffsbesatzungen.
So befand sich im Jahre 1824 der amerikanische Walfischfänger
„Globe“ in der Nähe der Insel Milli, wo der größte Theil der
Besatzung dieses Schiffes meuterte und landete. Es gelang zwar
einigen von der zahlreichen Mannschaft, die gezwungen den
Meuterern hatten folgen müssen, ihr Schiff wieder zu erreichen und
die offene See zu gewinnen, auch waren diese, obschon es ihnen an
Offizieren fehlte im Stande die Sandwich-Inseln zu erreichen; auf
ihren Bericht hin wurde dann im folgenden Jahre der Schooner
„Delphin“ ausgesandt, um wenn möglich die Meuterer zu ergreifen.
Aber nur zwei ganz junge Leute, die keinen Antheil an der Meuterei
gehabt, wurden noch lebend vorgefunden, alle übrigen waren von
den Eingebornen erschlagen worden, weil diese die ihnen
überlassenen Frauen roh behandelt hatten, sie verfielen der Rache
der Eingebornen und ernteten so den Lohn ihrer Thaten.
1834 landete Kapitän Dowsett auf den Marschall-Inseln. Dieser
unterhielt freundlichen Verkehr mit den Eingebornen und nichts
befürchtend, landete er eines Tages, und ging allein in ein Dorf, nicht
ahnend, daß inzwischen seine Mannschaft am Strande ermordet
worden war. Die an Bord zurückgebliebenen, die den Vorgang mit
ansahen, waren der Meinung, ihr Führer sei auch erschlagen
worden. Sie lichteten sofort die Anker und entflohen. Als das Schiff
nach Honolulu zurückgekehrt war, wurde sogleich die „Waverley“
ausgerüstet, um nach Kapitän Dowsett oder dessen Schicksal zu
forschen. Es wurde aber nichts weiter gefunden, als einige dem
verschollenen Kapitän gehörende Sachen, und sein, in die Rinde
verschiedener Bäume eingeschnittener Name. Die Eingebornen, mit
denen wohl schwer eine Verständigung erzielt werden konnte,
erzählten, der Kapitän sei mit seinem Boote in See gegangen;
jedoch der Führer des „Waverley“ glaubte ihnen nicht und ließ eine
ganze Anzahl niederschießen. Darauf segelte das Schiff weiter nach
Ponape, der größten Insel der Karolinengruppe, und lief auch die
östlichste dieser Inseln, „Kusai“ an, hier aber ereilte alle das
Schicksal, das Schiff wurde von den Eingebornen genommen und
die ganze Besatzung getödtet. Späteren Nachrichten zu Folge hat
Kapitän Dowsett noch im Jahre 1843 auf einer Insel in der
Ralikkette, die er mit seinem Boote erreichte, gelebt, wahrscheinlich
aber hat er von hier die Karolinen erreicht und ist auf einer dieser
Inseln getödtet worden.
Ich könnte noch mehrere solcher Fälle anführen, wo an
verschiedenen Inseln Schiffe genommen, oder der Versuch dazu
gemacht wurde, selbst schiffbrüchige Seeleute wurden nicht
verschont; noch im Jahre 1852 wurde vor der Insel Ebon ein Schiff
erobert, dessen Besatzung der Rache der Eingebornen verfiel, weil
Jahre vorher dort von Weißen ein großer Häuptling getödtet worden
war.
Selbst auf Jaluit, der heutigen Hauptinsel, wurde, wie ich aus
sicherster Quelle erfahren, wenige Jahre später ein amerikanisches
Handelsschiff die „See-Nymphe“ genommen. Es ankerte in der
Lagune unter der Insel „Medjado“, und, hier mit den Bewohnern
Tauschhandel treibend, ließ sich der Führer hinreißen, einen
Häuptling thätlich zu beleidigen. Die Folge war, daß dieser mit
seinen Verwandten und seinem Anhang einen Ueberfall plante, der,
sobald die Mannschaft des Schiffes wieder landete, ins Werk gesetzt
wurde. Es heißt, der damals noch junge Kabua, der jetzige König in
der Ralik-Kette, habe selbst den nichtsahnenden Schiffsführer auf
seinen Schultern über das Riff getragen, andere Eingeborne trugen
auf gleiche Weise die Besatzung zum Lande. Weit genug vom
Schiffe entfernt, wehrlos in die Gewalt der Eingebornen gegeben,
wurden die Ahnungslosen auf ein gegebenes Zeichen hinterrücks
niedergeschlagen. Das Schiff wurde darauf ausgeraubt und es
entging keiner dem Tode.
Die Ursache dieser Metzeleien, der so viele Unschuldige zum
Opfer gefallen sind, ist in der Roheit zu suchen, welche die Führer
amerikanischer Walfischfänger, die in diesem Gebiete reiche Beute
erjagten, an Eingebornen verübt haben. Sie litten es, daß oft mit
Gewalt den Eingebornen die Weiber entrissen wurden, auch
verhängten sie ungerechte Strafen. Mehr aber noch haben die
zügellosen Mannschaften solcher Schiffe, deren brutales Auftreten
die Führer nicht zu hindern vermochten, verschuldet, und bitteren
Haß gegen den weißen Mann in die Herzen der Inselbewohner
gesät.
Schlimmer noch, sie hinterließen scheußliche Krankheiten, die
sich von Geschlecht zu Geschlecht vererbten, tausende
hinwegrafften und ein gesundes Volk zur Verzweiflung brachten. Erst
nachdem die Meerbewohner vernichtet, die Walfischjagden nicht
mehr lohnend genug geworden waren, wurden die Marschall-
Insulaner seltener belästigt. Als dann die Missionare kamen, (zuerst
1857 auf der Insel Ebon) predigten diese das Evangelium und
fanden willige Hörer bei denen, die so oft ihre Hände in das Blut des
weißen Mannes getaucht hatten; eifrig befolgten die Eingebornen die
göttliche Lehre und vergaßen ihre Rachsucht.
Heute, unter deutschen Schutz gestellt, mögen diese Insulaner,
die so manche gute Eigenschaft besitzen, aufathmen, und sich in
Sicherheit, ihres Daseins freuen; aber leider ward mit der Zivilisation
auch der Todeskeim ausgestreut, langsam, aber sicher geht diese
Menschenrasse dem endlichen Verfall entgegen.
Sowie geographisch der Marschall-Archipel in zwei Gruppen
getheilt wird, so kann dies auch in Bezug auf Bevölkerung und
politische Verhältnisse geschehen, denn sowohl die Ralik- als auch
die Ratak-Kette ist in dieser Beziehung jede für sich als ein
getrenntes Ganzes zu betrachten. Schon die Sprache beider
Gruppen ist verschieden, nicht in ihrem Bau, vielmehr im Dialekt,
und gleiche Unterschiede zeigen sich in den politischen
Verhältnissen der Bewohner. Während auf der Ratak-Kette fast jeder
Atoll von einem, oder mehreren Häuptlingen beherrscht wird, die oft
in gegenseitiger Fehde leben und sich der Herrschaft zu
bemächtigen trachten, selbst zur Eroberung anderer Gruppen
(Atolls) lang vorbereitete Kriegszüge unternehmen, liegt die ganze
Macht auf der Ralik-Kette in den Händen eines Königs, jenes schon
erwähnten Kabua, besser gesagt, in den Händen seiner Familie.
Die Macht richtet sich hier nach Besitz und Anhang, und obgleich
Kabua nicht der reichste der Häuptlinge, ist er doch als der älteste
als König anerkannt worden, zumal da die Besitzungen seiner
Stiefsöhne und deren Einfluß sein Ansehn erhöhte. Sein Stiefsohn
Nelu (Lojab), dessen Bruder Lagajime, Litokua und neben diesen
Launa sind die einflußreichsten Häuptlinge auf der Ralik-Kette;
namentlich Nelu, seine Brüder und seinen Anhang habe ich häufig
an Bord gehabt und mit diesen Reisen von Atoll zu Atoll gemacht.
Bei den meisten ungebildeten, sogenannten wilden Völkern findet
man, daß das Weib nicht als gleichberechtigt angesehen wird,
vielmehr die Sklavin des Mannes ist, auf deren Schulter alle Lasten
und Mühen abgewälzt werden. Doch die Polynesier zeichnen sich
darin aus, daß sie das Weib höher stellen, mehr noch ist dieses bei
den Mikronesiern der Fall; vor allem bei den Marschall-Insulanern,
bei welchen es volle Gleichberechtigung hat, d. h. keine
Beschränkung im Handeln, in Haus und Hütte, und soweit des
Weibes Einfluß reicht, der, da Rang und Würde nur vom weiblichen
Geschlechte abgeleitet wird, häufig groß ist.
Die Bevölkerung ist zum großen Theil besitzlos, aller Landbesitz
liegt in den Händen der Häuptlinge, deshalb ist es den Bewohnern
nur gestattet, eine Frau zu haben, wo hingegen die Häuptlinge
mehrere haben dürfen, doch bleibt die erste Frau, sofern sie Kinder
hat, die rechtmäßige; sie ist bei den Vornehmen gewöhnlich die
Tochter eines Besitzenden. Steht die Frau im Range höher als der
Mann, so erhält dieser auch eine höhere Würde, nur über das
Eigenthum der Frau hat er kein Verfügungsrecht, das verbleibt als
mütterliches Erbtheil den Kindern. Die Tochter eines Häuptlings kann
einen gewöhnlichen Mann heirathen, durch diese Verbindung wird
derselbe ebenfalls in den Häuptlingsrang erhoben, auch auf die
Kinder geht diese Würde über. Dem Häuptlinge steht es frei, sich die
Frau eines seiner Untergebenen anzueignen, nie aber kann ein
Besitzloser sich wiederum eine Häuptlingsfrau (also Wittwe) zum
Weibe nehmen.
Etwas auffallend will es mir scheinen, daß nach meiner eigenen
Wahrnehmung selbst im Innern Afrikas, bei den Völkern am Nyassa-
See und oberen Schire, die ganz gleiche Einrichtung der weiblichen
Erbfolge besteht, nur daß dort nicht direkt der Sohn als Nachfolger
bestimmt wird, sondern der Neffe, und trotz des dem Weibe
zugestandenen Vorrechtes, dieses doch nur sehr gering geachtet
und mehr als Sklavin betrachtet wird.
Die Ehe bei den Marschall-Insulanern ist nur ein lockeres Band,
leicht geschlossen und leicht gelöst. Der Eingeborne nimmt sich das
Mädchen zur Frau, die ihm gefällt, sofern die Eltern desselben damit
einverstanden sind, gefällt sie ihm aber nicht mehr, so schickt er sie
einfach fort und sucht sich eine andere. Zwar hat wie in anderen
Gewohnheiten auch hierin der Einfluß der Missionare Wandel
geschaffen, namentlich auf den südlicheren Atolls, wo das
Christenthum große Verbreitung gefunden hat, doch hat auf
Gesittung die neue Lehre wenig Einfluß gehabt; Keuschheit ist keine
Tugend der Insulaner, schon sehr jung verkehren, ohne daran
gehindert zu werden, die Geschlechter mit einander und üble Folgen
bleiben nicht aus, ebenso ist selbst die nächste Verwandtschaft kein
Hinderungsgrund für solchen Umgang.
Als Beweis recht lockerer Sitten gilt der Umstand, daß es keiner
Frau verargt wird, wenn sie sich einen anderen Verkehr sucht,
sobald der Mann auf längere Zeit abwesend ist oder sich auf Reisen
befindet; indeß schwinden solche Gewohnheiten immer mehr und
mehr, häufiger trifft man sie nur noch auf den nördlicheren Atolls an.
Von Erziehung kann eigentlich keine Rede sein, den Kindern wird in
jeder Hinsicht volle Freiheit gelassen, Arbeit lernen die Kinder nicht
kennen, das einzige was ihnen vielleicht von Seiten der Eltern
beigebracht wird, ist die Einübung der Tänze und Gesänge.
Auffallend ist auch die große Sterblichkeit unter den Kindern, wohl
eine Folge zu geringer Aufsicht und schon früh entwickelter
Krankheitskeime; die stetige Abnahme der Bevölkerung ist darauf
zurückzuführen.
Der Körperbau der Männer überschreitet selten das Mittelmaß;
die Weiber sind durchweg von kleinerem Wuchse. Diese verlieren
auch schnell ihre Reize, schon im Alter von zwanzig Jahren ist alle
Schönheit vergangen, wenn überhaupt von solcher die Rede sein
kann, obgleich im jugendlichen Alter vielen der Reiz der Anmuth
eigen ist, aber im Alter werden sie recht häßlich.
Daß auf den nördlichen Atolls sich ein kräftiger Menschenschlag
erhalten hat, liegt wohl daran, daß dieser mit einer etwas rauheren
Natur zu kämpfen, auch weniger durch die von Weißen eingeführten
Krankheiten zu leiden gehabt hat. Auch zeichnen sich hier die
Könige und Häuptlinge meistens von ihren Untergebenen durch eine
stattlichere Gestalt aus, weil sie bemüht sind, möglichst reines Blut
in ihrem Kreise zu erhalten, wovon freilich der bereits erwähnte
große Häuptling Nelu eine Ausnahme macht, denn fast klein und
schwächlich gebaut, hat er durchaus nichts Achtunggebietendes an
sich.
Um Sitten und Gewohnheiten dieser Insulaner zu erforschen,
muß man sich zu solchen Inseln und Atolls wenden, wo noch nicht
der Einfluß der Zivilisation bemerkbar geworden ist, was besonders
in Bezug auf Trachten der Fall. So tragen auch heute noch sowohl
Männer als Frauen langes Haar, das stark und schwarz, von jenen
am Hinterkopfe in einem Büschel oder Knoten zusammengebunden
wird, die Frauen tragen es dagegen lose. Als besonderen Schmuck
bei feierlichen Gelegenheiten, Tänzen und auch Kriegszügen,
bedienen sich die Männer der Hühnerfedern; die tätowirten
Gestalten mit aufrechtstehenden Federn in den Haaren, und oft
unnatürlich erweiterten Ohrlappen geben sich dadurch ein wildes,
Furcht erweckendes Aussehen.
Die Tätowirung ist allgemein und wurde früher mit Festlichkeiten
verbunden, heute, wer die Kosten erschwingen kann, läßt solche
ohne weiteres vornehmen, und entspricht eine solche dem Stande,
welchem der Mann angehört. Dieses schmerzhafte Verfahren — ich
habe oft, wenn hunderte Nadelstiche in die Haut getrieben wurden,
die Nerven der Eingebornen bewundert — wird nach und nach auf
dem ganzen Körper vorgenommen, sodaß die eigentlich helle
Kupferfarbe der Haut unter den blauen Streifen verschwindet, sogar
die Ohren, Augenlider, selbst die Finger werden tätowirt. Die
Zeichnung ist immer streifenförmig, die Striche sind auf einem
bestimmten Körpertheil stets gleichmäßig, entweder wagrecht oder
senkrecht; auf Brust und Rücken laufen die Streifen meistens unter
einem Winkel zusammen.
Wie bei den Samoanern, so benutzt man auch hier ein
Instrument, das aus vielen Nadeln zusammengesetzt ist und die
Breite der Streifen hat. Die Häuptlinge sind auch im Gesicht tätowirt
und haben auf den Schultern undeutliche verschwommene
Zeichnungen. Die Frauen sind weniger gezeichnet, in gleicher Weise
höchstens an den Beinen, die Arme und die Brust werden seltener
tätowirt.
Nicht zufrieden mit solcher langwierigen, schmerzhaften
Operation, setzten diese Insulaner einen gewissen Stolz darin,
unnatürlich erweiterte Ohrlappen auf künstlichem Wege
herzustellen. Schon von früher Jugend an wird in beide Ohrlappen
ein Loch geschnitten und dieses durch Einzwängen von einem
Streifen des dehnbaren Pandanusblattes allmählich erweitert. Auf
diese Weise wird das Loch im Ohrlappen bis vier Zentimeter und
darüber lang, genügt dies nicht, wird der Fleischring dicht an der
Backe abgeschnitten und mit einem Schnitt im Backenfleisch weiter
unterhalb des Ohres verwachsen gelassen. Ist die Heilung erfolgt, so
wird nun im Backenfleische selbst weiter geschnitten, bis ein Ring
entstanden ist, durch den man bequem die Hand hindurchstecken
könnte. Wird solches Loch nun mit einem aufgerollten
Pandanusblatte ausgedehnt, so gewinnt es den Anschein, als
hingen zwei hohle Röhren an den Backen herunter, was freilich
etwas besonderes vorstellen soll, aber gewiß nichts zur Schönheit,
vor allem nicht beim weiblichen Geschlechte beiträgt, bei alten
Frauen und auch Männern sogar recht widerlich aussieht.
Uebrigens habe ich solche Erweiterung der Ohrlappen nur bei
ganz alten Leuten gefunden, ein Zeichen, daß die Operation seit
vielen Jahren fortgesetzt wurde; gewöhnlich aber ist das Loch nur
einige Zentimeter groß und dient als Aufbewahrungsort für
Schmuckgegenstände, als Muscheln, Blätter und Blumen,
namentlich einer lilienartigen Blüthe, auch für Tabak, Pfeifen u. a.
Die Willkürherrschaft der Häuptlinge, unter denen der reichste
auch der mächtigste ist, hat dahin geführt, daß, wie schon erwähnt,
die Bevölkerung nur in zwei Klassen, die Besitzenden und
Besitzlosen, zerfällt und der großen Masse eigentlich nichts gehört,
diese vielmehr vollständig von den Landbesitzern abhängig ist. Ein
solcher giebt dem Besitzlosen ein Stück seines Landes, auf
welchem jener seine Hütte erbauen, sowie die Erzeugnisse, als
Pandanus, Brotfrucht und Taro verwerthen kann, nur die
Kokospalmen gehören ihm nicht.
Für Land, Schutz und Obdach ist der Besitzlose verpflichtet,
gemeinhin sechs Monate zu arbeiten und zwar während dieser Zeit
die Kokosnüsse für den Besitzer einzuernten, den Ertrag der Palmen
in der anderen Jahreshälfte kann er für sich selbst verwenden, aber,
da die Kokosnuß so gut wie baar Geld im Tauschhandel ist, muß er
häufig noch seinen Antheil abgeben und ihm verbleibt nur wenig.
Dennoch kennt der Eingeborne keine Nahrungssorgen, und will
er nur verwenden, was die Natur so reichlich ihm zugedacht hat, so
kann er mit geringer Müh' und Arbeit sich ein sorgenloses Dasein
schaffen, Bequemlichkeit, oft Gleichgültigkeit jedoch verhindern ihn
daran, er ißt, was er gerade hat und sobald er das Bedürfniß fühlt,
sich zu sättigen, ihm genügen schon die Milch und der Kern einer
Kokosnuß, oder die süße Pandanus.
Letztere Frucht, die ich überall auf den Marschall-Inseln
gefunden habe, dient namentlich zur Zeit der Reife als ein
Hauptnahrungsmittel. Sehr zuckerhaltig, wird der süße Saft aus der
fasrigen, prismatisch geformten Frucht, aufgesogen und da dieser
nahrhaft genug ist, genügt er schon zur Sättigung. Mehr aber noch
eignet sich der darin enthaltene Zuckerstoff zur dauernden Erhaltung
einer Art Speise Pyru genannt. Dieselbe wird aus der Arrowroot-
Wurzel, Brotfrucht und Kokosnuß hergestellt; auf heißen Steinen
gebacken, durch den reichlichen Zusatz von Pandanussaft äußerst
dauerhaft gemacht, hat sie einen der Feige ähnlichen Geschmack.
Die Masse wird in etwa Zolldicke auf Blättern zubereitet, fertiggestellt
wird sie dann aufgerollt und sehr dicht in trockenen
Pandanusblättern eingepackt und mit dem schon beschriebenen
Cajar kunstvoll verschnürt. So erhält man eine angenehme
Dauerspeise, die jahrelang sich hält, selbst im Wasser nicht verdirbt.
Die so verfertigten Rollen, von gewöhnlich einem Meter Länge
und fünfzehn Zentimeter Durchmesser, haben ein beträchtliches
Gewicht, sie werden im Haushalte nur verbraucht, wenn Mangel an
anderen Nahrungsmitteln eintritt; gewöhnlich aber dient diese Speise
dazu, um auf weiten Seereisen oder an entlegenen Orten, wo nichts
Genießbares erhältlich ist, die benöthigte Nahrung zu ersetzen.
Der Pandanusbaum, ein schlanker, fester Stamm, der zuweilen
die Höhe einer mittelhohen Palme erreicht, trägt eine Blätterkrone,
deren Zweige ähnlich den einzelnen Blattstreifen einer Kokospalme,
tief herabhängen; die Frucht, ein bis 70 Pfund schwerer Kolben
besteht aus vielen prismatisch geformten, nach innen spitz
zulaufenden, faustgroßen Fruchtkernen, die, gut gereift, sich leicht
loslösen lassen.
Für die Marschall-Insulaner, kann man sagen, ist dieser Baum
fast werthvoller als die Kokospalme; mit den Blättern deckt er das
Dach seiner Hütte, der Stamm giebt ihm die Stützen, die Frucht
nahrhafte Speisen, und aus dem Blatte verfertigt er sich seine
kunstvoll gearbeitete Kleidung, dazu geben Handstöcke und Knüttel
die Luftwurzeln. Das Pandanusblatt läßt sich, wenn es getrocknet ist,
nach Belieben in ganz feine Streifen zertheilen; um diesem aber die
Sprödigkeit zu nehmen, wird das Blatt erst für längere Zeit in
Frischwassertümpel gelegt, dann aufgerollt und feucht tüchtig
geklopft. Dadurch gewinnt der Eingeborne einen dauerhaften Stoff
zu seinem Mattengewebe und zu Hüten die dem echten Panama an
Güte fast gleich kommen und lange halten. Ueberhaupt entwickeln
die Frauen im Handflechten eine Geschicklichkeit, die kaum
übertroffen werden möchte.
Sucht sich der Mann keine angemessene Beschäftigung —
Trägheit ist ihm angeboren — so hilft er den Frauen beim Flechten
der Matten, oder bereitet das Material dazu vor, auch übernimmt er
wohl selbst solche Arbeit. Hierbei bedienen sie sich nicht allein der
Hände, sondern auch die Füße müssen helfen, und zwar dienen die
beweglichen Zehen dazu, die Gewebe fest und straff zu halten.
Die Tracht der Frauen ist einfach genug, ihre ganze Bekleidung
besteht bei Erwachsenen aus zwei lang herunterhängenden Matten,
von denen eine vorne, die andere hinten angebracht ist und zwar so,
daß sie übereinander fassen und mittels eines Gürtels um die Hüften
festgehalten werden. Dieser Gurt, ein weiß und schwarz
gesprenkeltes dünnes Tau, häufig mehrere Meter lang, wird um den
Leib gewickelt und der obere Theil der Matten um dieses
eingesteckt, so bleibt von diesem nichts sichtbar. Junge Mädchen
tragen eine kürzere, ebenso befestigte Matte, aber nur nach vorne
und je nach Alter und Größe ist eine solche breiter oder schmäler;
der Oberkörper bleibt unbedeckt, Kinder sind ganz nackt. Aehnlich
wie die Samoaner, tragen auch die Männer einen Bastrock, verfertigt
aus den Fasern des Boa-Busches, indeß ist die Herstellung eines
solchen kostspielig und seltener habe ich solche Bekleidung
gefunden; gewöhnlich macht eine zwischen die Beine gelegte und
um den Leib mit einer Schnur befestigten Matte den ganzen Anzug
des Mannes aus. Von meiner Schiffsbesatzung, die meistens nur
aus diesen Insulanern bestand, hatten die meisten selten mehr in
ihrem Besitz als solch Bekleidungsstück und eine Schlafmatte;
liebten es aber, sobald ihr Verdienst groß genug geworden, der
gewöhnlich 52-60 Mark monatlich betrug, sich nach europäischer
Art, mit Hose und Hemd zu bekleiden.
Was den Bau der Wohnungen der Marschall-Insulaner anbetrifft,
so findet man sowohl recht ärmlich und einfach, als auch großartig
und kunstvoll aufgeführte Bauten. Oft genügen ihnen als
Aufenthaltsort sogar die denkbar einfachsten Hütten; ein
schrägliegendes Dach, das vorne auf Stützen, hinten auf der Erde
ruht, und mit Wänden aus Flechtwerk hergestellt ist. Dennoch ist die
Bauart der Hütten und Häuser auf einigen Atolls verschieden, nicht
in der Form vielmehr in der Größe und Festigkeit, größere Häuser
sind mit bemerkenswerthem Geschick erbaut. Das Dach, das
gewöhnlich aus einem Geflecht von Pandanus- oder Kokosblättern
wasserdicht hergestellt wird, ist eine feine Arbeit. Man findet das
Innere eines Hauses meistens reinlich und sauber, oft auch mit
feinen Matten ausgeschmückt; der Boden ist mit kleinen
Korallensteinen bedeckt und gewöhnlich mit großen, reinlichen
Matten belegt. Auch die nähere Umgebung zeugt von einem Sinn für
Reinlichkeit, der Erdboden ist ringsum geebnet und ebenfalls mit
kleinen Steinen besät. Man kann sagen, je nach Zahl der
Familienglieder begnügt sich der Eingeborne entweder mit einer
unscheinbaren Hütte oder er baut sich ein stattliches Haus.
In größeren Bauten ist meistens auf den Sparren noch eine
besondere Schlafstätte für das Ehepaar oder vornehmere Gäste
errichtet, sonst schlafen alle durcheinander auf dem mit Matten
bedecktem Fußboden. War ich gelegentlich gezwungen die
Gastfreundschaft der Eingeborenen in Anspruch zu nehmen, dann
wurde stets ein besonderes Lager für mich hergestellt.
Geschick und Kunstfertigkeit der Insulaner lassen sich erst recht
beurtheilen, wenn man in ihre Kirchen eintritt; alles Schöne, was sie
durch ihrer Hände Arbeit herzustellen im Stande sind, ist darin
vereinigt und eine wahre Ausstellung weisen die langen Wände auf,
die ganz mit feinen, in Form und Muster verschiedenen Matten
behängt sind. Es finden sich darunter Gewebe, die Zeugniß ablegen
von großer Geschicklichkeit und außerordentlichem Fleiße.
Die Lebensweise der Eingebornen ist ein sorgloses
Dahinträumen, das nur unterbrochen wird, wenn sie sich
gelegentlich zur ernsten Arbeit aufraffen. Vor Tagesanbruch, wenn
noch frische Kühle über Meer und Land gebreitet liegt, sorgt der
Insulaner schon für den täglichen Unterhalt, d. h. er erklettert die
hohe Palme und bricht genügend Nüsse ab oder schafft andere
Lebensmittel herbei; er liebt nicht die heißen Sonnenstrahlen und
sucht Kühlung und Schatten unter seiner Hütte oder unter
breitästigen Bäumen. Auch mehrmaliges Baden am Tage in der See
ist ihm zur Gewohnheit geworden, als tüchtiger Schwimmer und
Taucher scheut er selbst nicht vor schwerer Brandung zurück. Sonst,
wenn keine Nothwendigkeit zur Arbeit vorliegt, verträumt er den Tag,
und essen, schlafen, rauchen, gelegentliche Handreichung, füllt die
Tagesstunden aus. Lebendig und lebhaft wird er erst, sobald das
Tagesgestirn zur Rüste geht, der Hauch vom endlosen Ozean ihm
Kühlung zufächelt, auch sucht er erst zur späten Nachtstunde sein
Lager auf; vor allem liebt er es in mondhellen Nächten im Kreise
Vertrauter zu rauchen und zu plaudern, wobei es recht laut und
lebhaft hergeht. Für den Europäer, der die Ruhe der Nacht nicht
gestört wissen will und gerne schlafen möchte, was oft Mosquitos
und drückende Schwüle verhindern, sind solche Ausführungen,
Gesang und Tänze, nächtlicher Weile, manchmal recht
unangenehm.
Die Gesänge sind eintönig und wenig melodienreich; im Chor
gesungen, werden sie stets langsam und halblaut begonnen,
allmählich aber lauter und schneller, begleitet mit Händeklatschen
und dem taktmäßigen Wiegen des Oberkörpers, bis sie schließlich
zu einem Tempo übergehen, das mehr Aehnlichkeit mit Schreien als
mit Singen hat. Vor allem haben die Frauen große Fertigkeit darin,
und jede Bewegung mit der Hand oder dem Körper wird stets
sorgfältig ausgeführt, genau wie bei den Samoanern; freilich habe
ich auf diesen Inseln die Frauen nie tanzen sehen, nur Männer
zuweilen, mit Federbusch, Muscheln und sonstigem Zierrath
geschmückt, führten vor meinen Augen Tänze auf, zu denen die
Frauen im Chor sangen.
Anlaß zu Tänzen und Aufführungen giebt jedes geringe
Vorkommniß, z. B. das Eintreffen eines Europäers, eines Schiffes u.
a.; der Vorsänger erzählt darüber, was ihm gerade in den Sinn
kommt, oft den tollsten Unsinn, und zwar in kurzen Sätzen, hinter
denen der Chor irgend einen Kehrreim unermüdlich absingt, bis der
Gegenstand erschöpft ist und der Schluß durch lautes Klatschen
schon allseitige Zustimmung gefunden hat.
Auch von Häuptlingen aufgeführte Einzeltänze sind nicht selten,
solche haben aber immer ein kriegerisches Gepräge; wilde
Geberden, Sprünge, Gliederverrenkungen, ein möglichst wildes
Aussehen gehören dazu und können bei dem Zuschauer das Gefühl
erwecken, als würde man es im Ernstfalle mit einem furchtbaren
Gegner zu thun haben. Der Gesang ist mehr Geheul, ein Rühmen
nie ausgeführter Thaten, zu dem ein Chor von Männern und auch
Frauen ein entsprechendes Lied oder den passenden Kehrreim
absingen.
Eine Eigenthümlichkeit dieser Insulaner ist ferner, daß sie ihre
Todten nicht der Erde, sondern dem Meere übergeben, wobei sie
eine Ausnahme mit den Häuptlingen machen. Ist ein gewöhnlicher
Mann gestorben, wird er in Matten fest eingehüllt und bereits am
zweiten Tage mit einem Kanoe in die See hinaus geführt, wo, fern
dem Lande unter Beobachtung einiger Zeremonien der Todte den
Wellen übergeben wird. Ans Land wird die Leiche wohl sehr selten
wieder angeschwemmt, dafür sorgen schon die zahlreichen Haie,
welche diese als willkommene Beute ansehen und schnell genug
damit aufräumen.
So lange die Beerdigung am Lande oder in der See nicht erfolgt
ist, werden Klagelieder um den Todten gesungen, auch Tänze
aufgeführt, dann aber ist es Sitte, daß die Verwandten die
Hinterbliebenen besuchen und beschenken.
Die Grabstätten der Häuptlinge werden gewöhnlich außerhalb
eines Dorfes angelegt, wenn möglich in Korallensand gegraben; ist
das Grab zugeschüttet, wird der Hügel abgeflacht und mit Steinen
glatt bedeckt. Unter Palmen und Gebüsch liegen solche Stätten, oft
nur noch erkennbar an den Steinhaufen, aus denen als einziges
Zeichen verwitterte Kanoe-Paddeln hervorragen, die der Todte einst
geführt oder angefertigt hat. Einem Todten wird alles mögliche mit in
das Grab gelegt, Eßwaaren, Tabak, Pfeifen, u. a. m., damit derselbe
auf der langen Reise, die er angetreten hat, nichts entbehrt. Auf
frischen Gräbern habe ich fast immer Tabak und Nahrungsmittel
vorgefunden, die dem Todten gespendet waren, sie dienen freilich
nur dazu, die zahllosen Ratten, die gierig über solche Speisen
herfallen zu sättigen.
Eine gewisse Scheu hat der Eingeborne auch davor, die Gräber
der Verstorbenen zu öffnen; da er glaubt, der Geist des Todten
könne ihm Uebels thun, so läßt er sich nicht dazu bewegen. So ist
die deutsche Station auf der Insel Jabor (Jaluit) auf einem
verfallenen Kirchhofe erbaut worden, die Zeit hat aber alle äußeren
Spuren verwischt und nichts mehr deutet darauf hin, daß hier vor
langen Jahren die Angesehensten und Vornehmsten der
Bevölkerung begraben worden sind. Ich wußte es auch nicht eher,
als bis ich, mit der Aufrichtung eines hohen Flaggenmastes betraut,
mit meiner Mannschaft die nöthigen Vorbereitungen dazu treffen
wollte. Die Leute weigerten sich aus den angeführten Gründen, an
der bezeichneten Stelle eine Grube zu graben, und, unnöthiger
Weise einen Zwang befürchtend, entfernten sie sich, und kehrten
erst zum Schiffe und ihrer Pflicht zurück, nachdem der Flaggenmast
errichtet war. Sie ernstlich zu tadeln wäre thöricht gewesen, da sie
sonst stets willig und gehorsam waren, und nur abergläubische
Furcht sie hinweggetrieben hatte, worauf eben Rücksicht genommen
werden mußte.
Als die Ausschachtung von Arbeitern der Station (Neu-Hebriden-
Insulanern) vorgenommen ward, in der eine feste Mauerung
aufgeführt werden sollte, um das Grundwasser vom Fuß des Mastes
fernzuhalten, stießen diese auf ein Grab; vorsichtig ließ ich das
gefundene Skelett freilegen und gedachte den Schädel zu erhalten,
aber das vermoderte Knochengerüst fiel zusammen und da nichts
davon verwendbar war, wurden die Ueberreste an einer anderen
Stelle vergraben.
Wie im weiten Ozean, und namentlich unter den Riffen und
Inseln viele Fischarten angetroffen werden, so sind auch die
Lagunen sehr fischreich. Schillernd in den schönsten Farben findet
man hier die merkwürdigsten Arten und Größen. Aber leider was das
Auge erfreut, ist dem Magen nicht dienlich, der Genuß solcher
schönen Meerbewohner bringt dem Menschen den Tod oder langes
Seichthum.
Durch das klare Meerwasser bis auf den Grund schauend, sieht
man auf wachsenden Korallenriffen ein wunderbares Gebilde, bunte
Sträucher, kleine Bäume, schöne Blumen, ein bunter, blühender
Garten dehnt sich in der Tiefe aus; Gewächse in einer
Mannigfaltigkeit, wie sie auf der Erdoberfläche schwerlich könnten
zusammengestellt werden. Und alles dies ist nur das Werk der
unscheinbaren Korallenpolype, die die wunderbarsten Gebilde auf
dem tiefen Grunde erbaut. Ein reges, ungeahntes und nie
geschautes Leben herrscht weiter unten, vieltausend Thiere, nicht
sichtbar für des Menschen Auge leben und weben in dieser
verborgenen Welt. Stahlblaue Fischlein spielen umher, bald hier bald
dort an einem Strauche oder einer Blume naschend; naht sich ein
größerer Fisch oder erschreckt sie irgend etwas, fliehen sie im Nu in
das Labyrinth der Pflanzenwelt, oder suchen Schutz und Deckung
zwischen den Zweigen, unter den Aesten der vielgestaltigen
Korallenformen, wohin kein Feind ihnen zu folgen vermag.
Das Wenige, was in dieser unterseeischen Welt sichtbar ist, die
Schönheit derselben und ihre Bewohner, kann keine Feder
schildern, selbst wenn man die Phantasie zu Hilfe nähme, würde
man hinter der Wirklichkeit zurückbleiben. Stundenlang über den
Bord meines Bootes geneigt, achtlos die Angel in der Hand, trieb ich
oft über ein Korallenfeld, und ward gefesselt von der Schönheit
dessen, was ich unter mir vorüberziehen sah. Geradezu
Wunderwerke erbaut die Koralle, die nicht vergehen und die Zeit die
rastlose Schaffenskraft der Natur, selbst zu Inseln gestaltet, auf
denen der vergängliche Mensch, der Schöpfung vollkommenstes
Wesen, leben und auch leiden kann — die Werke von
Menschenhand verfallen, die der winzigen Polype bleiben bestehen!
Nicht selten ist unter dem Schönen und Schönsten, was die
Natur erschaffen, ein bitterer Kern, ein Tropfen Gift enthalten; so
birgt auch die Koralle, unter einer schönen Hülle, ein tödtliches Gift,
das den Meerbewohnern, den bunt schillernden Fischen nichts
schadet, diese selbst aber giftig und gefährlich macht. So finden sich
denn unter der großen Zahl von Fischen viele Arten, die nicht
gegessen werden dürfen; stets muß ein gemachter Fang dem
Gutachten eines erfahrenen Eingeborenen unterbreitet werden, will
der Europäer nicht Gefahr laufen, Gesundheit und Leben zu
gefährden.
Trotzdem machen die Eingebornen den Versuch, die
Beschaffenheit eines ihnen unbekannten Fisches durch Essen zu
erproben, bezahlen diesen aber, da sie keine Gegenmittel haben, oft
mit dem Leben.
Tüchtige Fischer sind aber diese Insulaner doch, durch Erfahrung
klug gemacht, stellen sie gewöhnlich nur solchen Fischen nach, die
ungefährlich sind, unter anderen einem der Sardine ähnlichen
Fische, der in größeren Schwärmen in den Lagunen angetroffen
wird. Ist ein solcher Schwarm entdeckt und nahe genug dem Lande,
treiben sie ihn mit Kanoes allmählich dem Strande zu; schnell
werden dann Matten und Schnüre zwischen den einzelnen
Fahrzeugen ausgespannt, der Kreis immer dichter gezogen, und die
Fische, durch Geschrei, Schlagen mit den Paddeln gezwungen, in
Massen auf ein Riff oder dem flachen Lande zu laufen, wo sie mit
Matten, Körben und Händen leicht eingefangen werden können.
Beim Einzelfang auf großer Tiefe bedienen sie sich ihrer aus
Perlmutter gefertigten Haken, die denen der Samoaner ähnlich sind;
tauschen sich aber mit Vorliebe auch von den Weißen eiserne
Angelhaken ein, die dem Zwecke besser entsprechen. Den
fliegenden Fisch, der seltener in den Lagunen zu finden ist, fangen
sie sich außerhalb der Riffe in ganz gleicher Weise wie ich es bei
den Polynesiern gesehen und beschrieben habe.
Seit jeher waren die Marschall-Insulaner kühne entschlossene
Seefahrer und verdienten den Namen „Schiffer“ eher, als die
Samoaner. Sie sind nicht bloß in den Grenzen ihrer Inselwelt
geblieben, sondern weit über diese hinaus, haben sie sich dem
trügerischen Meer anvertraut und namentlich mit den Bewohnern der
Karolinengruppe Verbindungen gesucht. Welch ein Zusammenhang
zwischen diesen beiden Volksstämmen bestanden haben mag, die
in Sprache, Gebräuchen und Sitten sehr vieles gemeinsam haben,
ist schwer zu sagen.
Am glaubwürdigsten scheint es, daß durch Wind und
Strömungen große Kanoes (Proas) von den Marschall-Inseln
verschlagen wurden, deren Insassen dann auch glücklich Land
gefunden haben. So soll noch im Jahre 1855 eine kleine Flotte die
östlichste der Karolinen-Inseln „Kusai“ erreicht haben und nach
monatelangem Aufenthalt wieder nach den Marschall-Inseln
zurückgekehrt sein; auch noch größere Entfernungen, wie berichtet,
sollen sie zurückgelegt und glücklich ihr Heimathland wieder
gefunden haben. Aber so einsichtig und wagemuthig in dieser
Hinsicht der Eingeborne auch ist, so ist doch anzunehmen, daß nur
glückliche Zufälle es gewesen sind, die ihn nach langer Irrfahrt
haben Land finden lassen. Darnach zu urtheilen, daß sie oft viele
Wochen gebraucht haben, um von einer Insel zur anderen zu
gelangen, müssen ihre Kenntnisse in der Seefahrt doch recht
bescheidene sein; was aber jedenfalls für viele verderblich
geworden, ist die Gewohnheit, sobald sie nach längerem Suchen ihr
Ziel nicht finden können, die Segel niederzuführen und sich ihrem
Schicksale zu überlassen.
Besondere Beachtung nun verdienen die Fahrzeuge, mit denen
der Inselbewohner sich auf den gefährlichen Ozean hinauswagt.
Den Kanoebau muß man entschieden als ihre bedeutendste
Leistung ansehen, Geschick, ja Kunstfertigkeit ist ihnen dabei nicht
abzusprechen. Schon die Anforderungen, die sie an ihre größeren
Fahrzeuge stellen, bedingen eine eigenartige Bauart; ihnen genügen
nicht mehr ausgehöhlte Baumstämme, wie sich andere Völker
solcher bedienen, hier gilt es vielmehr einen regelrechten Bau
aufzuführen. Und zieht man in Betracht, daß früher (und heute noch
vielfach) ihre einzigen Werkzeuge die Meermuschel und die
Fischgräte waren, und das mit Geschick verwendete Feuer bei
solcher Arbeit ihr bester Helfer ist, so kann man sich
Welcome to our website – the ideal destination for book lovers and
knowledge seekers. With a mission to inspire endlessly, we offer a
vast collection of books, ranging from classic literary works to
specialized publications, self-development books, and children's
literature. Each book is a new journey of discovery, expanding
knowledge and enriching the soul of the reade
Our website is not just a platform for buying books, but a bridge
connecting readers to the timeless values of culture and wisdom. With
an elegant, user-friendly interface and an intelligent search system,
we are committed to providing a quick and convenient shopping
experience. Additionally, our special promotions and home delivery
services ensure that you save time and fully enjoy the joy of reading.
textbookfull.com