Hacktoberfest 2026: los issues que los mantenedores marcaron para octubre, abiertos y aptos para principiantes. Explorar issues de Hacktoberfest

Undefined method appears when Component and Model have the same name

Abierto
#29 2 comentarios 0 reacciones 0 asignados Ver en GitHub

Nadie ha tomado este issue todavía.

Evaluación

Dificultad
3/5
Tiempo estimado
1-2 días
Aptitud para principiantes
35/100
Tipo de issue
Error
Claridad
Bastante claro
Estado de actividad
Estancado
Stack tecnológico
php
Área
tooling

Línea de trabajo

Comienza con el reproducer de BasicComponent, Basic model y FakeController y, después, sigue cómo el resolver resuelve $this->Basic cuando los componentes y los modelos comparten un nombre. Confirma el tratamiento de la declaración $uses del controller; se considera terminado cuando se reconoce el método del modelo sin producir un error undefined-method, con un caso de regresión para este ejemplo.

Escrito por el modelo de indexación a partir del texto del issue.

Descripción

Hi.

Thanks for this brilliant extension first of all.

I'm working with project where all Models don't have Model suffix. Like described in the official documentation (https://book.cakephp.org/2/en/models.html#understanding-models)

So in case we have Component and Model with the same name it leads to Call to an undefined method BasicComponent::some_method.

Code sample:

<?php

class BasicComponent extends Component {}
<?php

class Basic extends Model
{
    public function some_method()
    {
    }
}
<?php

class FakeController extends Controller
{
    public $uses = [
        'Basic',
    ];

    public function add_smth()
    {
        $this->Basic->some_method();
    }
}

As I can see component service is setup first so probably it found BasicComponent and tries to look method inside of it only and doesn't take into account that models is also exists.

Lenguaje dominante
PHP
Estrellas
2
Forks
3
Métricas de merge de PR
Sin PR fusionados en 30 d

Preparar el entorno

  • Incluye un Dockerfile o un archivo de Docker Compose
  • Sin plantilla de pull request
  • Sin guía de contribución

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de ariddlestone/phpstan-cakephp2

Todos los issues de ariddlestone/phpstan-cakephp2

Issues similares

Más issues de PHP

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.