title: Why do I get an "Access Level must be protected or weaker" after extending a protected class variable and marking it private?
body: <pre><code>abstract class AbstractController
  {
      protected $repository;
  }
  
  class GraphController extends AbstractController
  {
      private $repository;
  }
  </code></pre>
  
  <p><strong>I get this error:</strong></p>
  
  <blockquote>
    <p>Fatal error: Access level to GraphController::$repository must be protected or weaker </p>
  </blockquote>
  
  <p>Why?  What's the theory behind this?  On some level it feels wrong that I could have a weaker access level to a class property (i.e. public) when I extend a class, because I am in a way exposing a variable that was meant by parent class to be more restricted...</p>