0% complete

Object-Oriented PHP · Lesson 12 of 14

Traits

Reuse a small set of methods across classes with a trait.

Lesson

A trait inserts methods into a class at composition time. Traits can reduce duplication, but they also couple consuming classes to implementation details and can create method conflicts. Keep traits small and cohesive; use an interface plus composition when the behavior is a replaceable dependency. This example shares a simple method without claiming an inheritance relationship. Further guidance Give an object one clear responsibility and protect state that must satisfy a rule. Prefer a small public contract and composition for replaceable collaborators; use inheritance only for a genuine subtype. Test behavior through public methods instead of relying on internal implementation details. Practice task: Create a fresh example for Traits. Predict the result before running it, then change one input and explain why the result changes. Test a normal case and one boundary or invalid case where it applies. Compare your output with the example and note one rule you would use in a real project.

Code examples

Traits
PHP
trait HasLabel
{
    public function label(string $value): string { return "Item: $value"; }
}
class MenuItem
{
    use HasLabel;
}
echo (new MenuItem())->label('Home');
Expected output
Item: Home

Key points

  • Reuse a small set of methods across classes with a trait.
  • Protect object invariants behind a small public API.
  • Prefer composition unless inheritance expresses a genuine subtype.

Your learning progress

Finish this lesson

Optional practice

PHP playground

This site does not execute learner-provided PHP code. Connect a secured PHP sandbox service before enabling code execution.

Execution is disabled. No code is sent to a server.